Note on July 7, 2014 I switched my blog back to hosting on Blogspot: http://blog.markwatson.com
Subscribe to: Atom posts

14 Apr 2014

I am still trying to learn Haskell

I started studying Haskell again a few months ago and since I finished my new book last weekend, studying Haskell using the excellent learning resources at FPComplete has been my primary non-working geek activity.

In the last four or five years I have bought four Haskell books, made some effort to learn Haskell, had fun, and indirectly improved my Clojure and Scala chops - but, Haskell has never before really 'clicked' for me.

FPComplete has several good tutorials on Haskell that are live web pages: you do the example exercises in the text by using the 'Open in IDE' links. Reading and then immediately trying to solve problems with what you just read is a great way to learn.

You can use large parts of FPComplete for free, but I signed up for their Personal Plan so I could use their online IDE for my own private projects. The people at FPComplete wrote their web apps for their IDE and for the interactive lessons using Haskell (of course!). I have tried nitrous.io's online IDE for Node.js, Ruby, and Python which is also fairly nice, but it is not quite as effective as FPComplete. Google also has a web based IDE that is used internally (also very nice!) so there is evidence that web based IDEs have real traction.

While entering code in the FPComplete web based IDE it is really helpful to get constant feedback that the edited code is free from compiler errors; if there are errors then you get feedback for making corrections. Running code is fast, even though this relies on remote FPComplete servers. Github integration works well (as it also does for nitrous.io). I set up Emacs with haskell-mode years ago, and I also like it very much. I find myself using the FPComplete IDE for about half of my Haskell hacking and Emacs for the other half.


Do you want to comment on this blog article? Then please email your comment. I will add your comment with your name (I will not show your email address when publishing your comment).