Hacker News new | ask | show | jobs
by benreesman 2109 days ago
I’m far from an expert Haskell programmer, but I have written it for money and had the code run on big fleets.

Haskell is really cool, but IMHO is held back from practical adoption by two things, one technical, one cultural:

- Lazy by default maps weirdly onto von Neumann machines. Laziness is cool but doesn’t pull it’s weight as the default. Performance in time and space is even harder to reason about than it already is on modern architectures, and debugging is...different.

- GHC extensions are like crack for the kind of people who overdo it with C++ templates. Pragmatic, legible Haskell in the RWH tradition isn’t safe from the type-theory zealots even in a production system. Cool research goes on in GHC, but it’s hard to keep everyone’s hand out of that cookie jar in prod.

1 comments

I've briefly looked into the implementation details of lazy languages and yeah, while that Spineless, Tagless G-Machine is a pretty neat thing, it results in rather unorthodox code representation.

And yes, reasoning about memory consumption and having each library give you 2 versions (strict and lazy) of their data structures is tiresome. Why can't strictness/lazyness be parameterized away?