Having heard of the Erlang programming language for years without ever trying it, I finally dedicated some time a few weeks ago to exploring it. This was precipitated by signing up for the Erlang 101 class at Strange Loop 2014. An all-day Erlang class taught by the language’s creator Joe Armstrong and his protégé Francesco Cesarini seemed like one of the best possible introductions to language.

In preparation for the class, I did a little bit of reading, set up my editor, wrote a few small programs. I was pleasantly surprised. I was expecting some unruly behemoth, complete with quirky, overloaded syntax and confusing nomenclature. Instead, I found a small, simple, expressive language that immediately supported the functional style that I’ve come to prefer in recent years.

I arrived at the class at Strange Loop, assuming that I had only scratched the surface in my pre-work. Again to my surprise, there wasn’t much of to the language that I hadn’t already seen. Perhaps Erlang appears simple to me because I’m old enough to have seen all of this before. Even so, I can’t shake the feeling that it’s just that simple. Of course, there are many languages who’s features are simple and clear, while the complexity lies in the implementation and in the actual building of real things. And certainly, when Erlang’s OTP framework was introduced during the class, the learning curve suddenly steepened.

This quote open-source book Learn You Some Erlang for Great Good describes OTP:

The OTP framework takes care of [solutions to common problems] by grouping these essential practices into a set of libraries that have been carefully engineered and battle-hardened over years. Every Erlang programmer should use them.

And yet, even when faced with a new level of difficulty and abstraction, very little of OTP was confusing and difficult to understand. There was a distinct sense of approachability, which is as much as any production framework can hope for. At the end of the day, all I’ve done so far with Erlang/OTP is tinker, have fun, and explore. When I’ve had questions, the community has been wonderful, the documentation has been helpful, and even the stack traces have been pleasant. Now it’s time to build something real in Erlang/OTP. I can’t wait.