Programming Language Study Group

February 25th, 2008, 1:15 pm PST by Greg

As some of you know, I’m starting a one year sabbatical in September. There’s a lot to say about that, but for today, I’m going to limit myself to one of the plans.

I’d like to get to a point that I can teach CMPT 383 (Comparative Programming Languages). One of the things I’d like to do for that is expand my own breadth of experience with programming languages. I have worked with a bunch, but there are a lot more out there, and most programmers don’t give them enough thought. My goal for the year is to learn one language per month.

Of course, I wouldn’t have time to do a huge project in each. I’d like to get to the point that I could write some small (but functional) programs and know “the way” of the language. Here are some of the languages that come immediately to mind:

  • Haskell: I have used Miranda (which is similar), and took a functional programming course at SFU that used Haskell, but that was all a long time ago. I’d like to go through for a refresher.
  • Prolog: Again, I used Prolog back in the 383-like course I took in my undergrad, but it has been a long time.
  • OCaml: People who like OCaml really like it. That’s the kind of thinking that brought me to Python a few years ago, so it might be worth a look.
  • Lua: A lightweight scripting language that also seems to have some rabid fans.
  • Lisp: I find it a little odd that I’ve gotten this far in life and never written any Lisp. Time to right that wrong.
  • C#: The only language on the list that’s widely considered “practical”. I know it’s kind of just MS Java, but there might be something good in there. Plus, the Mono implementation seems to be working now, so I wouldn’t have to use Windows to do it.
  • Matlab or Octave: I like the array-based thing, and want to try some real stuff with it.
  • Erlang: You could say that Erlang is Just Another Functional Language, but it was developed by Ericsson for real practical stuff. That distinguishes it as interesting.
  • D: People like it, and it comes after C, right? That’s some good marketing.
  • Some esoteric programming language. These are mostly conceived as jokes, but that doesn’t mean there isn’t something to learn from them.

That’s ten without even thinking too hard. There’s a really great list of programming languages by category in Wikipedia.

I think the way to go about this is to create something like an informal Programming Language Study Group. That way, there would be other people hounding me to keep going (and vice versa). We could have a few little exercises for each language, maybe.

Who’s with me?

6 Responses to “Programming Language Study Group”

  1. Allen Pike Says:

    Yay languages! Right now I’m working on getting deep enough into Python that I’m naturally writing idiomatic Python rather than C-in-Python.

    All of these languages should be worth learning, but let me know what you think of Erlang. Not having string handling would make it too hard for me to spend much time with. I’m string-obsessed.

    What I’m *really* interested in is D. I like writing the kind of apps that are usually done in C++, but I don’t like writing C++.

  2. Allen Pike Says:

    As a side note, sometimes your math question spam filter triggers even when you do the math right (I know, I checked the contents of my POST with FireBug!)

  3. Curtis Lassam » Blog Archive » Project Project-A-Week (Project) Says:

    […] opportunity to have a big block of free time. Nobody in the industry has the opportunity to just take 6 months off and do something interesting, do they? That’s […]

  4. Greg Says:

    I’m going to add Pike to the list as well:

  5. Jeremy Says:

    I’d consider Smalltalk, the Source of OO. Or whatever.

    My language to-do is Lisp, Python, C (including Cuda), Haskell, Smalltalk, ECMAScript. Not necessarily in that order.

    Lua’s just Python, more or less. D sounds boring. Screw C#… it’s probably got some good stuff, because it’s Java-with-less-history (i.e. less cruft), but so what? Everything else on your list is paradigmatic!

  6. Sabbatical Plan-- Greg and Kat’s blog Says:

    […] To get to the “more about programming languages” stuff (and because it will be interesting), I intend to learn a programming language a month. […]