New Language Direction With Erlang

In my two most recent posts, Always Learning and Coders at Work, I talked about my personal and professional need to keep learning. My most recent addition to my development arsenal has been Python. Why I considered learning the language a success, I didn’t really feel that it a significant amount of new materials and features. As a result, I have chosen to dive into the functional programming language Erlang.

I know that I need to address the issue of Python not adding enough new material to my utility belt before I get anybody riled up. Nearly all of the language features such as its primarily oriented paradigm, dynamic typing, and automatic memory management are not new–I also have experience and a high degree of comfort with C, C++, C#, JavaScript, Perl and PHP. Throughout my introduction to Python, I was simply able to look at how I performed certain tasks in the other languages, and ported things over without any real difficulty. I enjoyed learning Python immensely and I am using it more and more in place of Perl.

Now that I have gotten that disclaimer out of the way, I have to pull us back to the subject at hand: What made me choose Erlang? I wanted to learn something completely different. All of the languages I listed above are procedural languages, while Erlang is a functional language. Also, one of my favorite topics of study is scalable web architecture–yes, I study it even when I don’t have to for work or a client. Erlang boasts a concurrent, distributed, fault-tolerant paradigm…all of which are issues that make scalable architecture so challenging and interesting. My final reason is that it isn’t a large-scale popular language. Yeah, I’m the guy who will zig while everyone else zags and have a good time doing it. As I am only spending my own time and money in this endeavor, no clients will be harmed during the filming of this episode.

A lot of the blame for getting fired up for Erlang has to be leveled at the interview of Joe Armstrong in Coders at Work. Especially considering the first post I see on his blog dealing with websockets in Chrome. It all really started clicking at that point. Want a highly interactive web application? Have the browser on one end, and an Erlang process on the other end. Want thousands of other people interacting as well? No problem! The recent opening of Facebook Chat to everyone clearly showed off the power of Erlang through ejabberd.

So how am I going about this? Book and interpreter in hand, that’s how! I’m still working through the exercises and very thankful that none of the recursion and induction exercises from college fell out of my head during the last 10 years. Next up is getting Yaws up and running on a server and start playing around with web apps. I should have a fun example or two in the next couple of weeks, so stay tuned.

Time for me to head off and go hack up some more Erlang code!

March 11th, 2010