I remember when during this winter holiday season I tried to explain to a friend of mine how weird functional languages are… I used Haskell as an example of a functional language since it is one of the more pure functional languages out there. The first thing I mentioned is that the language does not allow for side effects. Differently put, it means that the constructs you are used to seeing like this
int i = 0;
i = 3 * i;
are not possible in Haskell. He was completely confused – how can one get anything done in a language like this??
Turns out it’s not that difficult, but you do have to change the way you think significantly. The immutability of variables is one of the primary reasons why many developers don’t like XSLT – it just does not fit the way they’re used to think.
Once you get past that point and assuming you are not afraid of recursion (there’s a lot of recursion going on, even if in the shape of pattern matching) you’ll be fine.
Until just a few years ago, besides from bragging rights (knowing yet another computer language), it did not get you much knowing a functional language – it’s not like recruiters are asking for functional language developers in droves. However, the situation will have to change because of something I wrote recently about (multi-core processors): in order to get more performance for your app, you will have to develop for multiple threads.
Just this one feature – immutability of variables – makes multi-thread programming a lot easier with functional languages. I am not saying that all of the sudden you’ll start developing desktop applications in Haskell, but you might end up developing modules in F# if your primary development is .NET based.
Prepare for the inevitable and start learning a functional language today.
Currently rated 5.0 by 1 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5