Concurrency and Coordination Runtime

There are several reasons I study weird languages, but one of them is to stay ahead of the curve. I got hooked on this idea when the .Net beta came out. At the time, we were pure-Microsoft at work, writing classic asp and VB6 code. VB6 was boring so I spent time at home with Java, C++, and Python. Sometimes I wondered if I’d be better off studying VB6 in depth. Then .Net came out, I spent a couple days reading the O’Reilly book, and went “ok, no sweat, this works just like Java.” Just like that I was up to speed.

The process continues, and now that VB/C# have most of the mainstream features, the frontiers are stranger. If you want to be ahead of the C# curve, you have to look at languages like F# and Boo.

Yesterday I was pleasantly surprised to add Erlang to that list. If you’re not familiar with Erlang, it’s a language designed by Ericcson to run telephone switches. It’s good for massive scalability and reliability; Ericcson has a large application built with Erlang that has 30 milliseconds of downtime per year. There’s also an Erlang webserver called Yaws which, in a test, served up 80,000 dynamic webpages per second. Apache on the same machine crumbled at 4000.

When I started looking at it, there was one book…I ordered it via Amazon and it arrived in an international package from Sweden. They say it’s a bit out of date. But now, the Pragmatic guys are coming out with a book, written by one of Erlang’s creators. I’ve got the beta pdf and it’s quite nice.

Erlang is a great technology to know for its own sake. It gives you a whole different way to look at concurrency; shared state and locks really aren’t the best way to do it. Well now, some guys in an odd corner at Microsoft have figured that out. And the best part is, they’ve released a library that you can use in your C# 2.0 applications today.


Leave a Reply

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

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

Google photo

You are commenting using your Google 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 )

Connecting to %s

%d bloggers like this: