sprocket i/o

thomas stromberg on technology, nature, and motorcycles

sprocket i/o header image 2

Oh Camel!

January 27th, 2006 · Comments

I’ve decided to take it upon myself to learn Objective Caml (OCaml) as my next hobbyist programming language, meeting one of my Goals for 2006. Why such an odd, rare language? I’ve already tinkered with most of the normal ones, for starts. I decided that I wanted to learn a language that does not resemble any of the ones I already know, so that I would expand my skill as a programmer as much as possible.

Conventional wisdom (or at least the Pragmatic Programmers) says that programmers need to learn at least one new programming every year to keep their skills in shape and their ideas fresh. Each programming language can be likened to a philosophical discourse: each one is a manifestation of the creator’s theories, practices, and ideas. Every language has it’s own idea of what the best technique is to get to a particular solution. As a programmer, it is in your best interest to be familiar with a wide variety of techniques, because nearly each one is applicable in every other language as well.

I figured that this time I should go off the deep end and learn a Functional Programming Language. I’m honestly not sure what the big deal behind Functional Programming is (John Hughes has an idea), as much of it’s advantages seem more academic than practical to the kind of work that I do. The only way to learn why it matters, is to try to take advantage of it.

Why OCaml? I had originally decided that it would be either OCaml or Haskell. I read the Haskell for C Programmers tutorial, and my brain bled. It seemed to be too far over my head for my own hobbyist self-discipline to pursue. My friend Michel recommended I take a look at Scala, but the syntax felt too much like Java to me. Because OCaml also allows you to use imperative programming techniques, it seemed like a good way to dip my toes into this new foreign ocean. I am likewise happy and horrified that OCaml allows you to use Perl modules from CPAN using Perl4Caml.

So what does this mean for me? Well, it doesn’t mean that I am abandoning Ruby. In fact, I updated a few scripts on my software page yesterday. Things have began settling down around the house so that I can start taking a stab at releasing Geotoad 3.9 and 4.0, and make geocaching fun again. On top of all of those, I will most likely be working on revisiting Python this year. I haven’t given it much of a look since I learned Ruby 5 years ago.

Anyone have any good books or resources they recommend for learning Ocaml or ML?

Tags: technology

Viewing 4 Comments

 

Trackbacks

(Trackback URL)

close Reblog this comment
blog comments powered by Disqus