The thing is that all those projects are things that use languages that I’m already pretty comfortable with, or ones that I could get back up to speed pretty quickly. For a while now, I’ve had my eye on a number of languages that I’d like to learn: Haskell, Erlang, Go, Scala, Clojure, Lua, and Lisp. One of the things a few of these languages have in common is that they’re functional.
Some of these I’ve had my eye on longer than others. I’ve had my eye on Lisp for a few years now. Lua I’ve been looking at to use as a scripting language within my game engine. Haskell and Erlang both look pretty awesome, mostly because they’re nothing like any other language that I’ve used before. The others all have things that make them pretty attractive as well.
In the end, I decided to go with Erlang. There isn’t much reason behind the decision, I think it was kind of coin flip that just happened my head. I think one of the things that tipped the decision in Erlang’s direction was the fact that it was designed to be a extremely fault tolerant distributed system.
At work we’ve been talking about building an Enterprise Service Bus to help out with things like processing data, crawling, and messaging. There are a few pre-built systems out there – and we’ll probably go with one of those – but I figured that trying to build a simple ESB in Erlang would be a good way to learn the language.
I have no idea how well this will go. I know that trying to do this kind of project while learning a new language probably won’t go well. I do know that I tend to learn a new language best when I’ve got a project to use it on right away instead of just going through tutorials.
Anyways. I’ll keep you all updated.