A few weeks ago, I submitted to digg.com an article I had written comparing web development with Erlang + Yaws to Ruby on Rails. Why? Because it seemed like Ruby on Rails was getting all the buzz, whereas the developer community was overlooking an arguably much more powerful alternative: Erlang + Yaws.
By "more powerful," I don't mean to suggest that Yaws has more web development libraries or that it's as accessible to most web developers as Ruby on Rails.
(Yaws does have many useful APIs -- just not as many as Rails).
I mean "powerful" in the sense that Ericsson has been developing Erlang for 20 years with the goal of creating the ultimate language for powering its distributed, fault-tolerant, massively scalable telephone switches -- the stuff that operates with %99.9999999 (nine nines) availability.
Yaws is a web server written in pure Erlang, which means that it automatically inhertis the traits that have made Erlang-powered telcom switches so robust. When you're building a webapp with Yaws, you have the full power of Erlang at your fingertips.
The cost? $0.
The source code? Open.
All this stuff struck me as a very appealing package, especially in contrast to the popular array of web development tools (last I checked, nobody was programming commercial phone switches in Python or Ruby :) ) but despite my semi-serious attempt to promote it, my article got only 18 diggs.
Possibly overreacting, I thought that my Digg experience has proven that the larger developer community will probably never be interested in Erlang.
"It's a functional language in a Java dominated world," was my favorite rationalization.
Apparently, I made a mistake by thinking of digg as "the" destination for serious developers. A couple of weeks ago, somebody submitted my Erlang + Yaws vs. Ruby on Rails article was to reddit.com, where it made the front page. Then another article I wrote, Why Erlang Is a Great Language for Concurrent Programming was featured on reddit.com as well.
"Wow," I thought, "it looks like reddit.com is where less mainstream but more interesting programming blogs get real attention."
After these events, I started following reddit.com -- especially programming.reddit.com. I was mostly curious as to what kind of programming languages are featured there.
Today, I had a very pleasant -- almost shocking -- surprise: programming.reddit.com has 6 Erlang-related links, the top of which is also on the front page of reddit.com.
Here they are:
- 1) New Blog: Joe Armstrong (one of the fathers of Erlang) (armstrongonsoftware.blogspot.com).
- 3) Secret Weapons for Startups (yarivsblog.com)
- 5) The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software (gotw.ca)
- 9) Haskell vs. Erlang (wagerlabs.com)
- 19) HiPE (High Performance Erlang compiler) presentation (erlang.se).
- 22) The DIALYZER: a DIscrepancy AnaLYZer for ERlang programs (eg, an Erlang debugger) (ii.uu.se)
This is nothing short of amazing. I've never seen so many links specific to one language on programming.reddit.com -- and Erlang is far from one would call "popular."
Maybe I'm just seeing trends where I'm subconsciously trying to look for them, but maybe this really does indicate real shifts are happening and that developers are starting to recognize that for building scalable, high-available, fault tolerant systems, today's array of popular programming languages are simply nowhere close to where Erlang was 20 years ago.
Interesting times are ahead for Erlang.
Side note: DIALYZER isn't a debugger, but a static analysis tool for finding software defects.