|
|
|
|
|
by mercurial
4701 days ago
|
|
You will note that I make no claims about clarity, only that it is possible to separate pure from impure code in Haskell (which is certainly true). The problem with Haskell and clarity are, in my experience, twofold: - large amount of high-level concepts to absorb (though not everything is necessary to start producing code) - the power of the language is its own worst enemy at times - it is possible to write a pipeline of complex computation with very little work, which leads to less code but less readability (on the other hand, Haskell functions are typically short, which helps a lot with maintaining up-to-date comments) On the other hand, the separation between pure and impure code is not a complex notion per se, and reasoning about pure code is made much easier. |
|
One of my primary complaints about Haskell, however, is that Haskell code is impossible to debug. You can reason about it, the type checkers can check deep properties about it, but it is difficult to actually observe the computer executing it! To me, this is a deal breaker.