Betting on Erlang
Not long ago I use to work in the Game Development industry where we used C/C++ and Lua to make our games; Python and C# were also used for developing tools. It wasn’t uncommon to have discussions about programming languages especially being on the engine team and all of us having experience in a range of different languages.
Some of the time discussions stared with a new scripter asking why we were using Lua instead of Python, which they were more comfortable with, but most of the time it would be somebodies pet project and choice of language that would kick it off.
One of the more interesting languages that was being used by the lead programmer was Erlang. I had never heard of it before and not having programmed in Prolog the syntax was totally foreign. But my lead would often call me over and show me something cool you could do in the language.
Late last year Francesco Cesarini, founder of Erlang Solutions, was in town for YOW!2010 and was holding an Erlang workshop on a Saturday. So I thought it best that I go along and give the language at least half a day of my undivided attention to see if I liked it.
Holy Shit! Ignoring syntactic differences this was a completely different style of programming than what I was used to, and I liked it. No need for defensive programming, the VM halts any failed process without taking your whole app down. Concurrency comes free as a by-product of sharing nothing. Hot Swapping. Garbage Collection. Need I go on.
If your a programmer who hasn’t yet picked which of the concurrent languages to choose for the scary multi-core future, but you do know that threads are going to drive you to madness, then I recommend taking a closer look at Erlang.
Our lead did eventually get to do a game project in Erlang when we made our first facebook game. It will probably take me a year of unfinished projects before I become proficient in the language but I’m looking forward to it.