Strange Loops

No Matter Where You Go, There You Are

10 PL Challenges for 2005 (Revised)

| Comments

Decided to revise my PL challenges for 2005 considering that a quarter of the year is now gone. I’ve picked up bits and pieces of various programming languages over the last 3 months and now it’s time to re-evaluate what I want to learn.

I’m dropping Self for now. IO and Self are very similar to each other. They are both prototype based languages. This class of language is new to me and I only have the bandwidth to process one of these languages. IO is being actively developed and that is my primary reason for sticking with it.

I’m dropping OCaml. I’ve found a nice set of material that I want to explore with Haskell (Darcs, Pugs, The Fun of Programming, GHC 6.4). Haskell also seems to be a better language to start understanding the strongly typed functional programming languages.

I’m dropping Groovy for the Java environment. The Java environment has a rich set of languages and tools I think is worthwhile exploring. I’ve discussed this in another blog entry.

I have a renewed interested in (re)learing Ruby after checking out 43Things and Basecamp. Both of these websites use the RubyOnRails framework which might be the killer app for the Ruby language. I want to (re)learn Python because I attended a talk by Guido this year and there are some cool new features in it that I want to explore (list comprehension and generators).

AppleScript is new to the list. This is closely tied to my goal for learning Objective C (but really the Cocoa framework). I want to program my PowerBook. For too long, I’ve depended on my knowledge of Unix to script my Mac. It’s time I went to the next level of scripting my Mac. This means AppleScript. JavaScript could also work for this purpose. AppleScript is the standard on all Macs and that is the trumping factor over JavaScript.

C# is also new to the list. Java has the JCP but there are no open source implementations of the virtual machine or the compiler. This is not true for C#. Mono provides this open source implementation. For that, I’m putting it on the list.

Erlang is still on the list although I’ve not looked at it yet. There is a large amount of material dealing with concurrent programming using Erlang. It’s this aspect I hope to explore more this year.

The list now stands as follows:
0. Ruby
1. Objective C
2. Java Environment
3. Haskell
4. Lisp
5. Io
6. Erlang
7. Python
8. AppleScript
9. C#