Haskell: Worth the Hassle

Haskell is a challenging language, but it can also be very rewarding. Even if you don’t write production applications in it, learning Haskell will change the way you program for the better. It’s a different approach to thinking about programming, and lets you come at problems from an angle you might not have seen before. Once you get used to Haskell’s ideas and idioms, you can be HUGELY productive in this language. My favorite resource for Haskell newbies is http://learnyouahaskell.com/ It’s an online book, and it’s free (though you can buy a hard copy). LearnYouAHaskell is great for newbies and even gets you a simple introduction into the mathy category theory parts of Haskell. You’ll learn what the heck things like monads and functors are. The later parts of the book get a little dense, but they’re still mostly approachable. If you’re wondering how all this stuff can be turned into a webpage, there are frameworks for that. My favorite is Yesod. Other options are Happstack and Snap. One of the nice properties of Haskell is that Haskell forces you to write code in such a way that it’s very likely to be re-usable. So getting some expertise in one of these frameworks could allow you to build up complex backends very quickly in the future. I’d like to emphasize just how high-performance Haskell is. It’s an order of magnitude faster than ruby/python on a bad day, and that goes double for PHP without acceleration techniques. That’s not an exaggeration at all. It’s even faster than Node.js and better at handling asynchronous requests. I’m not saying that it should be everyone’s go-to backend, but it’s a serious language, and it’s got some real power behind it. It’s definitely worth a look. I hope at least a few of you take some time to learn you a Haskell. 🙂