Saturday, December 02, 2006

Technology Time Warp

In the last few weeks I have had cause to try out Lisp and Haskell, both of which are pretty old technologies (although Lisp beats Haskell hands down being specified in 1958 as opposed to 1990). I have come to some interesting conclusions (which surprised me, but will not surprise users to these languages). Firstly, that programming language progression is not linear and secondly that I had missed (but been using in XSLT) an important programming paradigm.

Why try Lisp and Haskell? .Net 3.0 have some interesting new features, which step out from the purely Object Orientated view of the world and allow us to do some pretty cool stuff. These are namely Functional Programming (of which Lisp and Haskell are pure examples) and LINQ which provide relational query, set and transformation programming. Anyone who has used a relational database will instantly grasp LINQ, but what is Functional programming?

Functional Programming - Wikipedia has a great description of FP, but in essence a FP function does not store any state information. You can therefore blackbox FP code and with the same set of inputs you will always get the same set of outputs. This has performance and maintainability benefits, as software can scale (see Google's MapReduce function) and will not have side effects (they are also thread safe).

Conclusion - Was it worth trying Lisp and Haskell - in one word, yes. These languages provide great run-time interpreters/compilers and it took all of 3 minutes after download to start writing some pretty cool programs. Mind you trying to take in a new syntax (or two) with entirely different programming paradigms was pretty hard, but the upshot is a new way of thinking about coding especially for those of us brought up on Imperative Object Orientated code.

Some cool references:


Post a Comment

<< Home