
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. Regards, John A. De Goes N-BRAIN, Inc. The Evolution of Collaboration http://www.n-brain.net | 877-376-2724 x 101