[Haskell-cafe] statep haskell-lang [was: Re: Hoogle and Network.Socket]

John A. De Goes john at n-brain.net
Thu Feb 26 14:30:47 EST 2009

On Feb 26, 2009, at 12:12 PM, Achim Schneider wrote:
> I think that arguing that Haskell is _obsolete_ because it isn't yet
> fully dependently typed is vastly mistaken.

I never said it was obsolete. Far from it. But I did say that choices  
already made and codified into H98 have implications on the future  
evolution of Haskell, because Haskell is unlikely to deviate in ways  
that significantly break backward compatibility.

> One thing is for sure: All progress will be stopped dead if the
> community starts to listen to people who demand "enterprise- 
> readiness".

What do you mean by "progress"? I noted before that there are  
tradeoffs. Constraining the evolution of the language in backward  
compatible ways leads to substantial improvements in tools, libraries,  
and the speed of compiled code. That's progress in several dimensions  
-- just not along the dimension of "language".

> I seriously doubt that backwards compatibility will ever be broken to
> the point of non-inoperation, but I certainly expect -- and do, in  
> some
> sense, hope -- it to be broken, to the point where you can't mix H98
> and H' source because they are mutually incompatible, either in  
> syntax,
> semantics, or both, as long as you can still comparably painlessly  
> link
> them.

We'll see. First we have to know what H' is going to look like, which  
is a long ways off.

> If your business is fine with that, you shouldn't have any problems. I
> can imagine a lot of companies currently using Haskell wouldn't be
> happy with freezing Haskell, at all: They don't mind updating their
> code to the state of the art.

The problem with completely fluid languages is that they impose  
arbitrarily high costs on those who choose them. That's why companies  
prefer well-defined standards and strong backwards compatibility. And  
that's why such languages eventually die, from lack of innovation --  
even if 40 years later there are still developers forced to maintain  
software written in them.

An intermediate solution is providing a source-to-source translator  
that flawlessly converts older source code into newer source code. Add  
binary compatibility, and then the only real disadvantage in language  
evolution becomes retraining and tools. Which are both significant  
costs, to be sure, but not as significant as the former.


John A. De Goes
The Evolution of Collaboration

http://www.n-brain.net    |    877-376-2724 x 101

More information about the Haskell-Cafe mailing list