Sun, 14 Feb 2010 17:36:59 -0600, Andrei Alexandrescu wrote: > bearophile wrote: >> - And finally in D2 there are several new features that are sometimes >> only half-implemented, and generally no one has tried them in long >> programs, they seem to come from just the mind of few (intelligent) >> people, they don't seem battle-tested at all. Such new features are a >> dangerous bet, they can hide many traps and problems. Finalizing the D2 >> language before people have actually tried to use such features in some >> larger programs looks dangerous. Recently I have understood that this >> is why Simon Peyton-Jones said "Avoid success at all costs" regarding >> Haskell, that he has slowly developed for about 15 years: to give the >> language the time to be tuned, to remove warts, to improve it before >> people start to use it for rear and it needs to be frozen (today we are >> probably in a phase when Haskell has to be frozen, because there is >> enough software written in it that you can't lightly break backward >> compatibility). > > The response of the Haskell community seems to be "avoid avoiding > success". Anyway, either slogan shouldn't be taken out of context, and I > don't think the situations of the two languages are easily comparable. > For example, a few years ago monads weren't around. At that point, a > different I/O method was considered "it" for functional programs (I > swear I know which, but I forgot).
There's not much choice here. Probably explicit state passing with a state variable? People also invented other methods, but monads provided an useful abstraction for other kind of use as well.