Comment

Comment by deterministic

I used to be a big Haskell fan and had a lot of fun writing and using monads. And I agree that once you get them, the basic idea is quite simple. I’ve even used monads to prove a small compiler correct in Lean.

But in practice, I think monads are a poor tool for large-scale software development. I spent a long time trying to build a large game in Haskell and eventually gave up out of frustration with the complexity they introduced.

Monads make sense as a way to manage effects in pure languages like Haskell/Lean/Idris/Agda. But outside that context, I don’t think the additional abstraction is worth the cost.

Understanding how monads work is one thing. Understanding why they’re needed in the first place, and when they’re not, is another.

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton