Gearing Up to Learn

I’ve always been interesting in programming languages and lately my favorite is Python. It’s a dream to work with, and I’ve become quite proficient with it. However, I’ve gotten to the point where I’m comfortable enough with Python, and with aspects of my current job that make me feel as though I’m slipping into a hole and not learning. My programming skills can’t progress simply because I always solve the problem using the same tools and thus I’m limited to what ColdFusion and Python can do for me. Since ColdFusion isn’t really a language and most of my time is spent working with it (I only get to write Python at work when I want to automate some mundane task or can write Python to generate SQL which would take a lot of thinking to do in raw SQL [i.e. generate insert statements instead of writing horrid batches with cursors, etc, etc]), I feel as though I am not a programmer anymore. This sucks.

So, because my current situation is more than unpleasant, I’ve been reading a bunch about functional programming and functional languages. I must say, I’m totally in love with all I’m reading. Yes, Python has some functional concepts built in and there are some modules to do even more, but it wasn’t designed as a functional language. I’ve read a book or two on LISP, glanced at SCHEME, and recently have discovered erlang. I’ve yet to peer into the sheer expected awesomeness of OCAML and Haskell, but it brings me to many questions. For one, which language should I become proficient in?

LISP seems like the obvious choice as it’s the Grandfather of modern programming languages. It’d also be the easiest since I do have some time invested into it already. LISP’s sheer number of implementations alone scares me, though. Assuming all major LISP interpreters provide portable excution of proper LISP, this shouldn’t be a big deal. However, I was recently annoyed by the fact that libraries like SDL and OpenGL only work with some implementations and not others. I think what was worse is that I would have needed two interpreters to use both, as they didn’t run on the same implementation. Not only that, I’ve had trouble finding CMU LISP or GNU LISP packages that compile and run on OS X. I’m not looking into anything that isn’t Free Software or released under an appropriate license.

The experience has been quite unpleasant.

So which is it LISPers? GNU LISP, or CMU LISP? I want to learn LISP but, I’m about ready to give up and move onto a language where one implementation rules them all, such as erlang. (For the record, I have no true goal in mind for learning a new language, so usage domain is not an issue.)

— 2006-08-30