Friday, February 16, 2007


I am fairly well known at Amazon for being a proponent of Erlang. However recently I have decided that Erlang and I need to take a break. People keep on asking me if I am planning on using Erlang in the future, or if I'm going to introduce it to my new team.

The answer is going to have to be a no unfortunately. While I like Erlang, the problem is one of string performance. The bottom line is in web applications and systems that deal with the web, strings are a first class concept and object. Not being able to efficiently deal with them is pretty much a dealbreaker. Most people seem to get around this limitation by translating most important strings into atoms, and then treating the rest of strings as binaries and doing pass-through. This approach is not suitable for all applications sadly.

I am interested in the following technologies and systems right now:

The interesting aspect of Stackless is they use blocking-queues as the IPC method of choice. I really like the async message passing style of Erlang, but I suspect most people have a problem thinking in and rationalizing about asynchronous messages.

I like D because it seeks to provide high level OO facilities with good performance. Performance really is everything - we should not be thinking otherwise. We need flexible highly performant systems, and it's possible that D can provide some of this. I need to investigate more however.

No comments: