From a newbie II
Revision as of 01:30, 28 June 2008
Hello there. I am another Haskell beginner. I am writting this page to tell my experience with Haskell so far, inspired by the article From a newbie.
2 First impressions of Haskell
My first language was PHP, then C, then C++ and some ruby/python scattered sparsely. Then someone in the #c++ channel in Quakenet said something about Haskell and functional programming. He said there were 'no variables' or something of the sort, and how it had influenced and improved his C++ style. Since he was a pretty good programmer I decided to take a look. Ugh, what the f*ck is this? So it never went past taking a glance from the examples in wikipedia or haskell.org, learning by guessing and then giving up.
Only 6 months after, out of sheer boredom I decided to resume my Haskell lessons. Naturally, I am enjoying it more than ever, since this 'feeling' that learning something \this\ new gives I had only found when learning C, or learning about OOP in ruby or C++.
3 Learning Haskell takes lots of time and practice
Just like it took... what, 2 years? to learn C++ (and I still don't consider myself good at it), I think Haskell has a loooong learning curve. Specially if you come from an imperative background.
4 Learning Haskell made easy (easier)
Short and sweet:
- Print the haskell98 report - read.
- #haskell on freenode - ask.
5 Haskell can be interpreted AND compiled?
I have to admit this was one of the features about it that attracted me the most. So far I had dealt with either compiled languages (C, C++) or interpreted (Ruby, Python, PHP). This just looked awesome. And it is.
6 Haskell can be used to write real-world stuff
Amazing, so it's not educational oriented only, but rather has a rather large standard library for interfacing with the real-world (WIN32 Api, OpenGl, Networking, etc). Sweet.
7 Elegant solutions here I come
I'm not even sure if I like the code more than the resulting binaries sometimes. :)
8 Wtfux is a monad
I think I'm getting it...amazing. Start by understanding IO. Then realize what a monad IS. Then make your own monads. Oh my gosh.