Reflecting on Haskell in 2017
My impression of Haskell is that the main issue is that laziness is simply wrong, since it causes space leaks that are hard to reason about, and seems generally less efficient than eagerness; furthermore, it seems rarely beneficial, so it seems more appropriate to explicitly request laziness rather than the opposite.<p>The next problem is that complete immutability is also wrong, because controlled mutable aliasing with linear types (like the system available in Rust) is what you really want since it&#x27;s more general, efficient and expressive (allows mutable data structures), and complete immutability is just a special case of controlled mutable aliasing.<p>The third problem of Haskell is the weird syntax, that doesn&#x27;t follow the common C&#x2F;Java&#x2F;JS or Python syntaxes for no good reason, making it hard to read and learn the language.<p>And if one were to change these things in Haskell, the result would essentially be Rust (or more precisely, a future version of Rust once all the missing abstractions like HKT, specialization, etc. are added), so I think that&#x27;s what one should use instead.