
Adrian May
Please don't interpret this as a rant: I'm just feeling a bit disappointed about probably having to give up on Haskell.
[rant that update broke stuff]
Well, it is a rant, so you can just as well concede it. =) The Haskell community and its descendants (Agda, Disciple, Idris, ...) differ from all other developer communities I know in one point: We don't fear change. There is a reason why other communities do: Non-downward-compatible changes will break stuff. We are aware of that. Occasionally things will break, when they worked perfectly before an update. Does that mean that Haskell sucks? Not really. It means that some library developers will have to get rid of their old bad habits. This is unlikely to happen for unmaintained projects like WASH. So the question you should be asking yourself is: Do you really want to use WASH? I'm surprised that you could build it with any GHC 7.x at all. If you don't like this experimentalism and the rigor with which we get rid of old problems (which isn't even that rigorous -- Functor and Monad are still independent classes even today), then Haskell may indeed be the wrong choice for you. However, you should always ask yourself: Who is the one with bad habits? Consider PHP: It was broken since the beginning and is still broken today. The developers carefully make sure that it stays broken, because fixing it would break applications. They don't want them to break. That means that you can rely on all of your old bad habits, keep your SQL injection vulnerabilities, your broken program logic, etc. Is this good or bad? Consider Debian, the PHP of Linux distributions: Their philosophy is never to touch a running system, so instead of employing architectural changes they keep the old code bases as long as possible and follow a rigorous backporting policy. They don't want you to have to rewrite your configuration files or update your shell scripts or whatever at-most-five-minutes steps would usually be necessary after an update. It should Just Work. Is this good or bad? To express this question in a broader context: Are you leaving a broken tool and replacing it with a new shiny one? Or are you really just replacing a small problem by a big one? Haskell's change policy is a small problem that prevents you from big problems. PHP is a big problem all by itself. Do you really want to leave this wonderful realm just because of one setback? Keep in mind that this setback is an integral part of why Haskell shines where PHP sucks. Think about it. ;)
In principle this is the best language on the planet, but with all these version gotchas I don't know that I can use it anymore. What a tragedy. I can't even think of a suggestion as to how Haskell should try to get out of this mess now.
We all have to deal with these gotchas. However, I'm still much more productive with Haskell than with any other language. When I go to a new GHC major version I always expect some old packages to fail, and I'm often surprised by the small number of packages that actually do. So my closing comment is: Haskell is one of the best languages, but that greatness comes at a price. Deal with it. Going back to PHP is not the answer. Instead you should recognize that now is the time to look into one of the big three web frameworks of today: Happstack, Snap and Yesod. The tool that is broken and needs to be replaced is WASH, not Haskell. Greets, Ertugrul -- Not to be or to be and (not to be or to be and (not to be or to be and (not to be or to be and ... that is the list monad.