So long Haskell, and thanks for all the type inference

I set myself the challenge of learning Haskell in 2012.

I failed.

I learnt a lot about Haskell, I read a book, I tried to write some code. I didn’t really get very far past ‘Hello World’.

I put this down to a few things:

  1. The concept count is high. It would take me a very long time to get productive, and this was frustrating.
  2. Node.js (which I had also been learning during this time) is easy to learn, and seems to do more interesting things right out of the box. I got very productive in Node very quickly. This made Node far more interesting, so I didn’t devote enough time to Haskell.
  3. Haskell is very terse, too terse for me. I cut my teeth on on Pascal!
  4. I couldn’t find a problem to solve. I didn’t really know what to write.

Anyway, whilst I didn’t get productive (perhaps this was an unrealistic expectation) I did learn a lot about Haskell. I can recommend the ‘Learn You A Haskell‘ book. I had the paper version, but the online edition is probably better as the code samples are syntax highlighted. It helped me appreciate lazy evaluation, pattern matching, and currying. It’s changed the way I write C# (which has some very simple functional programming concepts) and it’s opened my mind to functional programming.

Is Haskell a toy language? I don’t think I know enough to form an opinion. I do think that languages like JavaScript are successful because they are simple. I think Haskell’s concept count has kept it from becoming really mainstream, but if it didn’t have these concepts, it wouldn’t be Haskell, and I don’t think that Haskell cares about fame anyway.

I recommend learning new languages. It’s OK if you don’t become an expert in a year, but simply learning about them will help you to appreciate the wider development world.

So which language to look in 2013? On the shortlist are: Erlang, Python and C++11.