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). Behind closed doors every functional language designer was scratching their head trying to find a better way. It's good Haskell didn't commit to the now obsolete I/O method - as good as D not committing to yesteryear's threading model.

So I am a little worried for some of the last features introduced in
D2. I don't know if D3 can solve this problem (maybe not).

I read the entire post waiting for the punchline. Which features do you have in mind?


Andrei

Reply via email to