In certain domains, such as client-side AJAX development, JavaScript (an under-appreciated dynamic language) has most definitely crossed the chasm. It has kicked statically typed languages such as Java (remember Duke?) and VB/C++ (remember ActiveX?) out of the browser. But what about mainstream business applications? Here, Python and Ruby are the main contenders yet we still haven’t seen a lot of movement.
Currently, Ruby is the belle of the ball – today’s fashion statement in programming. It’s strapped onto the Rails rocket/catalyst, which got a lot of people to look at Ruby, myself included. Once you look at Ruby, its benefits are clear: it reduces the activation energy required to write clear, beautiful code. And this characteristic appeals very strongly to the early-adopter / alpha-geek market.
Witness Steve Vinoski’s recent encounter with Ruby:
“It looks like Tim Bray and I currently happen to be in very similar places with respect to Ruby. I too am just starting to use Ruby in real production applications, and like Tim, I too have been ridiculously productive with it over the past few weeks.”

Steve and I met a couple of years ago at the ACM Middleware conference that Werner Vogels helped to organize (back in the day when Werner was just a ‘lowly academic’). Back then both Steve and I were on a similar trajectory around Python. I had just written Matthew’s first birthday present, an internal DSL for writing scripts to get Microsoft Agent characters to tell animated stories, as well as sing songs. We spent a lot of time at the conference talking about how great dynamic languages were, and how much more productive we were when programming using them (in stark contrast to C++).
But back to the original point: the productivity gains, the beautiful code appeal to the alpha geek aesthetic (and Steve’s far more of an alpha geek than I am – just look at what he’s accomplished in his career). I’m not convinced that they appeal to the early mainstream market which is what you have to target if you want to have a hope of making it across the chasm that most technologies die in.
That market craves relatively safe decisions. In Geoffrey Moore’s own words:

“The early majority share some of the early adopter’s ability to relate to technology, but ultimately they are driven by a strong sense of practicality. They know that many of these newfangled inventions end up as passing fads, so they are content to wait and see how other people are making out before they buy in themselves. They want to see well-established references before investing substantially. Because there are so many people in this segment – roughly one-third of the whole adoption life cycle – winning their business is key to any substantial profits and growth.”
This is why last week’s announcements by Sun (JRuby), and Microsoft (IronPython 1.0) are so significant. Sure, Python is used a lot by Google, but to most early mainstream business application programmers Google is alien technology that bears no resemblance at all to the applications that they are paid to write. On the other hand, Sun and Microsoft are platform vendors that speak their language. Their explicit endorsement of dynamic languages is a very important step toward early mainstream adoption.
Hopefully we’ll see dynamic languages cross the business application chasm. We’re not there yet, but when we do get there I believe that we’ll find far more happy programmers out there (and happy programmers == productive programmers).
Recent Comments