In my spare time, for fun, I’m learning some Clojure. It made me think (in the shower, as usual) to list all the languages in which I’ve written some amount of working code. Not as a brag, but to see just what I’ve been exposed to along the way. I’ve never actually been hired anywhere as a developer, so most of this experience is either from university, a work activity to get a bigger job done, or (mostly) as a curiosity. On one hand it demonstrates my generalist tendencies; on the other it suggests that I’m just a dilettante with an attention deficit problem. It also pretty well defines my age.
- BASIC (Microsoft Level II, and Visual Basic)
- FORTRAN (and Ratfor)
- Assembler (Z80, PDP-11, 6809, 6800, 8086)
- Tcl (with Tk)
- XSLT (yes, it’s Turing-complete)
I’ve excluded OS-specific scripting “languages” like Bash, Awk, and VAX/VMS DCL, and proprietary languages. Missing in action for me are languages like C++ (only got as far as reading a book and trying to install C++ on VMS), 6502 assembler (never got an Apple ][), Python (I like Ruby better), Turbo Pascal, and Objective C.
Looking back, I’ve written the most lines of code in C, been the most productive in Perl, struggled the most with Prolog, had the most fun with Ruby, written the ugliest Java, and most admired Smalltalk and the Lisp family. Through all this dabbling in code I’ve come to value the power from language simplicity and elegance, as a means of building complex systems. And yet, I’m still frustrated in many ways by still having to deal with the basics of bricks, mortar, and plumbing, when I just want to create my own modest castles in the sky. Clojure actually feels a bit closer to that ideal, which is why I’m interested in it. And for learning it, I can highly recommend the nearly released Clojure in Action.