This post originated from an RSS feed registered with Ruby Buzz
by David Heinemeier Hansson.
Original Post: Why Java (presumably) won't go anywhere soon
Feed Title: Loud Thinking
Feed URL: http://feeds.feedburner.com/LoudThinking
Feed Description: All about the full-stack, web-framework Rails for Ruby and on putting it to good effect with Basecamp
In software engineering speak, the actual implementation of a system using a specific programming language has the lowest value in the value chain, and can be easily outsourced.
This statement contains two assumptions:
First you complete the specification, then you do the implementation
Implementation is the mechanical and trivial part
If you agree to those assumptions, Michael is absolutely right. And lots of software shops, managers, and apparently some programmers do. Not Rails, not any other innovation, evolution, or revolution in software is going to change that any time soon. This is ingrained baggage.
If you don't agree to those assumptions, however, you probably already know just how deep the rabbit hole goes. Needless to say, I'm one of those people. I don't believe that you can meaningfully separate specification and implementation and I most certainly don't believe that implementation is either trivial or mechanical.
Of course the rejection of those assumptions is closely tied to culture. 37signals is a small 7-man shop, so implementation and execution is the bulk of what we do. It's the bottleneck. If you work at Mega Corp Inc. under five layers of management and need to play the corporate politics game, then implementation is very unlikely to be your prime concern.
Again, Michael is spot on when he says that the superior solutions doesn't always win. In many environments, I'd wager that they rarely win. Technical excellence seem to have a inverse correlation to the size and age of most corporations. "Nobody ever got fired for...". Right now that sentence ends in Java.
As I've mused on before, I actually hope it stays that way. I'd really hate to become the end of that sentence. Because with it comes a world of distractions (and hurt and suffering) that just isn't a place that I want to be.
Oh, and just so you don't think I'm all happy nilly with Michael, let me just say that I think that the stuff about new languages needing a brand new area is bullocks. But I'll be a good sport and trade that remark for a book recommendation that I think would be beneficial (not just for Michael, though, you should read it too).