Clojure is a Lisp dialect for the JVM. I've done some reading on Clojure and had a play with the REPL, so this year I'm finally going to get round to writing some code with it. From what I've seen so far it looks quite powerful, and the integration with the Java libraries seems to work nicely.
Factor is a concatenative programming language, meaning it uses a stack instead of named variables to pass data around. Seems like a strange concept to me. This will definitely be an interesting one!
Google announed their Go language in late 2009, describing it as a cross between C++ and Python. It was co-created by by Ken Thompson, who also co-created Unix and worked on the C programming language.
Haskell is a purely functional strongly typed language. It also uses lazy evaluation. It's got a bit of a reputation for being difficult, but I'm hoping I'll at least be able to pick up some of the main concepts and put a few small programs together.
Erlang is a concurrent programming language designed for fault tolerant real time applications. I'm looking forward to learning how Erlang deals with concurrency.
I did some Scheme, a Lisp dialect, while at university. I haven't really touched it since though, so I'm planning to revisit it and maybe dig a little deeper. I'm thinking about trying The Little Schemer book, or perhaps the online fixnum days tutorial.
Another JVM language, Scala is a strongly typed language that "smoothly integrates features of object-oriented and functional languages".
Objective Caml is a statically typed, object-oriented and functional. I'm sure I'll pick up some new techniques and ideas from this language.
Ruby is a scripting language similar in many ways to Python. I've never looked at it in any detail before because I always thought it was too similar to Python. I'd like to learn it mainly to give the Rails web framework a try and to see how it compares to Django.
A small and portable scripting language, Lua is very popular in the game programming world where it is often used for the scripting of complex 3D engines.
I did a little bit of Prolog at University and I remember being blown away by it. It's a declarative logic programming language, often used in the field of AI.
It's going to be a tough challenge, learning 12 new languages in 12 months. But hopefully this time next year I'll have picked up some interesting techniques, and have a few extra tools in my programmer's toolbox. I'll be blogging about my progress throughout the year, posting my thoughts on these languages along with any code that I come up with. If you're interested in the updates then you can subscribe to get them automatically. If you've got any comments about any of the languages or about the challenge in general then I'd love to hear them!
It's been 12 months. See how I did.