Why a prolific Clojure user switched to Haskell
bitemyapp.com
bitemyapp.com
* Refactoring is a breeze. This may be truly unbelievable until you start to work on a big project in Haskell.
* Old code stays alive—types provide adequate documentation to get up to speed on old code pretty quickly.
* Reuse is immediate. Parametric polymorphism and free theorems mean that you tend to write really composable pieces as nothing more or less than the simplest, most confident way forward.
* Slow down when learning. Haskell will pretty much violate every base expectation you have about how languages work. You'll have to suss out what those assumptions are to move forward, and it may take time.
All of these I reflect personally as well. The first three derive immediately from the combination of purity and expressive typing.