Sunday, August 16, 2009

Diving in even deeper.

I'm almost finished with 'Learn You a Haskell For Great Good'. (gotta love the name)
After this it's on to 'Real World Haskell'. I ordered it in dead-tree form and hope to have it before I finish the first book.
To further soak myself in Haskell, I've decided to switch to XMonad as my window manager. The fact that I had a lot of trouble getting StumpWM running on my freshly reinstalled laptop (x86_64 this time) helped a lot ofcourse.
(I'm staying on the stumpwm IRC channel though, I love those guys ;-) )
'The Pragmatic Programmer' tells us to learn a new language every year. Well for me, that's about true in the last couple of years. But frankly, I'm not looking to learn a couple dozen new languages, I'm trying to find one I really like and can be used for practical problems.
Haskell isn't really a language that seems very practical at first glance. But little by little, it's practical side is showing and I'm guessing there's a lot more to come. I'll give it a while. If I can't get stuff done with it, I'll continue my search :-)

Saturday, August 8, 2009

Picking up Haskell

I've been reading so much about Haskell lately, it started to annoy me. When that happens I felt like I had two options:

1. Ban everything Haskell from my newsfeeds.
2. Learn it just to see what the fuss is about.

Obviously I've chosen the latter.
It's not that I don't like Lisp anymore, far from it! But a couple of blog posts have made me think about learning a 'current' functional language. Something shiny, something that can cope with all the buzzwords (concurrency and whatnot)...

So I decided to give it a go. I've been reading the excellent, excellent Learn You a Haskell For Great Good. (I cannot emphasize enough how good this book is. It's not even finished yet but I already tried to pre-order the print version of it.)

At first glance, Haskell seems very complicated. All those little arrows, double colons, pipes,.. very syntax heavy. Using Lisp for about a year now I've grown very fond of almost no syntax at all.
Still, I decided to give it a chance and started reading. After a couple of pages I was already going "Hmm this isn't so bad afterall...".
They had me at list comprehensions and pattern matching. It's like reading a mathematical definition. Only, you can execute it too! Haskell is filled with flashy words too.. currying, partial application, functors, monads. While I haven't had the (I assume) pleasure to read up on monads, all the other words are just a fancy name for a fairly straightforward concept...
Also, Haskell forces you to think functionally, while Lisp only encouraged it. I've caught myself several times writing in an imperative fashion in Lisp. (Old habits I guess...).
I'm really looking forward to be proficient in a functional language.

Anyway, long story short, I really like Haskell so far. I've already seen glimpses of how it can also be practical.
I must admit I'm more excited about learning Haskell then I was about learning Lisp. And I already thought Lisp was the best thing since sliced bread.

We'll see how it goes!