A passage in Charles Nutter’s reaction to MagLev caught my eye today:
First off, they demonstrated its distributed object database automatically synchronizing globally-reachable state across multiple VMs. It’s an amazing new idea that the world has never really seen…
except that it isn’t. This is based on existing OODB technology that Gemstone and others have been promoting for better than a decade. It’s cool stuff, no doubt, but it’s been available in Gemstone’s Smalltalk product and in their Java product for years, and hasn’t seen widespread adoption. Maybe it’s on the rise, I really don’t know. It’s certainly cool, but it’s certainly not new.
True enough. But what really is new in software development, anyway? Quite a few people have noted that the feature sets of modern programming languages are gradually converging on the feature set of Lisp, a language that is over fifty years old. Ruby itself has been around as long as Java, believe it or not. And Ruby is essentially a Perl-ish syntax veneer over Smalltalk, a thirty-year-old language.
Why does Ruby seem to be succeeding in ways that Smalltalk didn’t? Well first of all, Smalltalk did have a fair amount of success in it’s time. It remains to be seen whether Ruby will have better staying power. My guess, though, is that it will. The momentum Ruby has accumulated is pretty impressive.
Why? I can think of a lot of possible reasons. Ruby came of age in a time when Moore’s law had finally made the trade-off in increased development productivity versus relatively slow execution time economically justifiable. The primary Ruby implementation was free and open-source, not proprietary. For that matter, Ruby matured during a time when the Open Source community was exploding into relevance and even dominance, as opposed to the proprietary dominance of previous decades. And Ruby arrived at an inflection point in software development, a time when developers were still finding their legs on a new platform (the Web); and a new Web framework using the power of Ruby to accomplish Web programming tasks more easily had the opportunity to revolutionize the industry.
It could have been some combination of the above, or it could have been other factors entirely. Whatever the reason, a ten year old language based on thirty year old technology suddenly took off. Now turn to the field of data storage: developers are looking at novel new(?) document-oriented systems like CouchDB and StrokeDB, despite the fact that SQL is The Standard. Coders primed by Ruby and Rails to look to unfamiliar sources for solutions are questioning the conventional wisdom in other areas as well. Maybe it is time to reconsider the much-maligned OODB as well.
I guess the point I’m getting at, if there is one, is that sometimes the best new idea is an old one reconsidered in the light of current needs.