Friday, January 4, 2008

Finding my way

In June 1996 I cleaned my rifle for the last time and said goodbye to my platoon and brother officers to engage in a career in IT.

It was a difficult and probably poor decision but one can not look back to far before the mists of time confuses what was with what one wanted it to be.

One of the most difficult challenges has been in maintaining an enthusiasm for my current pursuit that was taken for granted when one lived on an adrenalin drip.

For me, I found this in the ongoing discovery of programming paradigms and methodologies that in one fell swoop would increase my productivity and, along with it, ability to tackle increasing complex problems.

When I exhausted Visual Basic (not a difficult task) and moved on to C++, the transition to Object Oriented from Object Based was enlightening, exciting and, to a certain extent, empowering, leading me ultimately to Java and then Objective-C. From there i went through a long period of stagnation.

C# was interesting and I enjoyed it far more than Java, but it was nothing new.

Ruby seemed promising and Rails has certainly changed the web development framework landscape but, again, nothing new.

I dabbled with lots of different technologies while plying my stock in trade with various employers, but nothing really excited me until a long time infatuation with Lisp was finally sated with Peter Seibel's excellent Practical Common Lisp and subsequently Paul Graham's On Lisp. My only problem was that I couldn't see a way of making any money with Lisp, however, I had been bitten by the functional paradigm that Lisp espouses but does not necessarily enforce.

Since then I have enjoyed, as time and tide allows, several dalliances with functional programming languages and more significant outings with OCAML and Haskell; it has been so much fun that it has peaked my interest beyond programming languages and encouraged some tentative steps into category theory and its application to computer science.

With the advent of multi-core CPUs and the promise of many core processors in the near future it occurrs to me that my interest in functional programming languages could not of happened at a more opportune time. It is not that imperative programming languages are not as capable, merely that functional programming languages seem to be more natural fit.

More to follow.

No comments: