So one of my interests and therefore, one of the things I plan on rambling about in this blog is programming languages. I’m pretty sure that based on the people who currently about this blog I’m not going to have a very big audience which will care about or understand these ramblings, but that’s not going to stop me.
For anyone out there that does care and wants to understand, I recommend the following videos as a starting point. Haskell is my current favorite programming language and these videos contain one of the main people behind Haskell giving a very accessible introduction to the language.
So watch the videos then dowload ghc and play with it. Or ignore me when I blog about this stuff. Either way. If you are at all interested in computer science beyond what you need for a job you should learn Haskell though. Here are a few reasons why:
- It’s just about the only functional language which has a really nice syntax. I know Lisp people love their parentheses to death but that’s not for everyone. Most functional language designers see syntax as unimportant but the designers of Haskell actually cared. It’s not familiar for people brought up on C and certainly has its warts but overall it’s a joy to work with.
- It’s designed so that a very large class of errors that plague most languages, just never happen or a caught at compile time. No null pointer errors!
- Powerful type system. The static type system helps you out rather than gets in the way. It has type inference so you only need to specify types you want to for documentation purposes. Other cool stuff that’s hard to explain briefly (the video goes into it a bit). Anyone who claims dynamically typed languages are universally better than statically typed languages based on only using C++, Java and such, needs to try Haskell to have an informed opinion.
- Unlike most obscure languages, there’s a good community and a fair amount of libraries. Hackage is a centralized software repository like CPAN (obviously much smaller so far). Two really cool libraries worth checking out: parsec and stm. Both of those libraries take advantage of some of Haskell’s features and you couldn’t write those libraries the same way (or as nicely IMO) in another language.
- It has ideas in it that will change the way you think about programming.