intertwingly

It’s just data

Lean Languages and Libraries


Russell Beattie: I’d even speculate that the recent interest in Erlang is driven by these same forces. The same people who swore they’d never use Java again if they could help it are looking for a good replacement for it on the server. The one spot where the JVM has no real peers is in long running server-side processes that need to execute hard-coded business logic as scalably as possible. Despite the fact that the JVM is a resource hungry beast that’s ponderously slow to start up and happy to eat as much memory as you can throw at it, it’s still the only real game in town for this type of application... for now. The reason people are looking at Erlang is not because its beautiful syntax, great documentation, or up-to-date libraries. Trust me. It’s because the Erlang VM can run for long periods of time, scaling linearly across cores or processors filling the same niche that Java does right now on the server.

First, great article.  I encourage everybody to read the full thing.  I also like Brian McCallister's follow up.

Next, to dispel a few myths.  Slashdot is written in Perl, seems to handle the load, and also seems to stay up.  While there are a number of BitTorrent implementations, the original and (to the best of my knowledge) the most pervasive version is written in Python.  Yahoo is a mix, but a good portion of it is written in PHP, with critical functions written in C.  Twitter is written in Ruby, had early scalability issues, but seems to be past them.  These are all examples of massively scalable applications.

Finally, that syntax issue keeps coming up.  I continue to look past it, but perhaps I shouldn’t.  I mean PHP isn’t exactly known for elegant syntax, and it seems to be doing OK.  But perhaps a Scala inspired syntax on top of Erlang’s byte codes would make the solution more palatable.  Note that I said Scala inspired, and not a Scala port.  Unlike the CLR which was designed to be multi-language, and unlike the JVM which is in the process of being repurposed to be multi-language also, Erlang’s VM is designed from the ground up assuming that objects typically are immutable and serializable.

So, while Joe Gregorio sees a future for databases without joins or transactions, I see a future in lightweight threads without locks or semaphores.