Sorry I have to reply to this older post since this take was repeated few times and it’s imo at best misleading.
Haskell was intended as a research language, wasn’t it?
Haskell is a language designed by committee of language researchers interested in lazy evaluation first released in 1990. It could be said it has research roots yes. But you need to define what you mean by research language. If you mean language primary used for research then no, that’s not the case today. It would be possible to actually make a case that OCaml, which you seem to defend, is more of a research language but I spare readers of that.
Avoid success at all costs” and all that.
You probably read even this sentence badly. It doesn’t mean “we are, at all cost, avoiding success”. It means “we’re avoiding success at all cost
”. “success at all cost” here is a single term referring to languages adapting sub optimal solutions just to please users. This doesn’t mean Haskell was not meant to succeed. That would be completely stupid – do so much work for nothing. It talks about not taking shortcuts and taking time to do things right.
once they realized that laziness was a mistake
Did they? Source? S. P. Jones just said that “laziness was what he was excited about at first the most but now he is more excited about purity”. The trick is that purity was necessity only because of laziness. You can have pure languages without laziness but it makes certain things tricky. With laziness some things become harder to reason about, sure (exceptions for instance). But it also enables certain patterns which would not be possible in strict languages.
they should have removed it.
You can’t just change evaluation strategy and pretend it’s the same language. If you want strict Haskell look at other options like PureScript or Scala.
Your Haskell program eating all your RAM is also a side effect.
My Haskell program does not do that.
Also I don’t know how this relates to nix. Is it because it’s also lazy? Well in nix laziness makes ton of sense doesn’t it? Or would you want to evaluate entirety of nixpkgs every time you need a single package compiling all the code in nixpkgs? Even Make is lazy to large extend.
I mean a lot of what you say are valid points every reasonable person should consider. Thanks for sharing that. I just don’t understand what is the motivation behind these poorly researched takes on Haskell, unrelated technology, especially since they only harm your case by making you look… wrong.