Skip to content
Tags

First thoughts on Erlang

December 11, 2010

I’m taking my first foray into Erlang, and my first impression is, WOW. Why does it take me so long to get to the good stuff!

Given the ongoing demise/fragmentation of Java – and it’s popularity on the server – you have to wonder if a space is opening up for Erlang. Here is an incredibly stable, commercially supported, open source platform which is the state of the art – and proven – when it comes to multi-core/distributed server applications.

I’ve watched a few videos with Joe Armstrong, and the first thing that strikes me, is here’s a guy who thinks out of the box. Here’s a good one:

http://www.infoq.com/author/Joe-Armstrong,-Martin-Odersky,-Don-Syme

Most development takes place from the parameters placed on us by the mega corps, I find Joe’s views – like Rich Hickey’s –  quite inspiring in their disdain for the accepted norms. There are better and simpler ways of doing things.

Like Clojure, Erlang lacks typing checking, but there are some external tools for type checking that may alleviate my concerns. Further, I think single assignment pattern matching and immutable data help to offset the this loss.

The overall feel is a great balance of flexibility/power and given it’s long history a superb thoroughness and attention to detail.

Update1

Follow up to Tom’s question re Erlang/Node.js, this thread provides a good view of the Erlang opinion http://groups.google.com/group/erlang-programming/browse_thread/thread/142aed19df0decd9/4f7b1c085b57014e?lnk=gst&q=node#

Update 2

Erlang @ Facebook

http://www.reddit.com/r/programming/comments/ekylq/facebook_and_erlang/

bd

About these ads

From → Uncategorized

3 Comments
  1. Tom permalink

    What are your reasons to look into another language? Is Node’s stability or language worrying you?

    • Hi Tom

      Node.js is single process, and suffices for most apps. If for example you were doing a Node.js app server, you want to manage multiple Node.js instances, this get’s you into, processes that monitor other processes, if one goes down, you start it up again etc. Now, Erlang has all this done already – it’s infrastructure is second to none for this – it also has visual tools for monitoring processes. So, one finds oneself writing the same stuff for Node.js that Erlang already has.

      Syntactically, Erlang’s lack of oop makes it a simpler language than haXe; you have modules/functions, immutable data – very flat. From my experience with Clojure, and what I brought back from that to haXe, i found this flatness much more productive. Erlang replaces OOP with processes and messages, which gives you isolation and polymorphism, but retains the flatness – it’s been said Erlang the most pure OOP there is. It’s mostly noiseless, i like not having “public static inline function”, or whatever, prefixes to my function calls. It’s not all good, string handling dodgy, but for my taste, the balance overall is great.

      Finally, I’m adding Erlang to my toolbox, and I’ll be actively improving my chops, and pursuing projects in it, but for the foreseeable future, haXe/Node.js is still my primary platform.

Trackbacks & Pingbacks

  1. Tweets that mention First thoughts on Erlang « blackdog -- Topsy.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: