March of the Straw Men and the Language Ecosystem
I understand the philosophy that developer cycles are more important than cpu cycles, but frankly that's just a bumper-sticker slogan and not fair to the people who are complaining about performance. I understand that there are plans for Ruby to address performance with some kind of bytecode compiler and that will be nice. When these things happen and when Ruby starts getting competitive benchmarks it will be a lot more appropriate for a lot more types of applications. In the meantime I stand by my claim that it's not appropriate for every situation.
No programming language is appropriate for every situation. Looks like the straw men are on the march again. Trolling performance issues in Ruby is largely a pointless distraction in the context that Joel describes. Everyone knows Ruby is slow. But so what? It’s also incredibly useful. As much as I’m loathe to fall in lockstep with DHH’s opinion, he is pretty much right about this.
What’s strange about the way that this argument has bounced back and forth is that both of these guys are working on the same essential problem and have tackled it with different solutions. But actually not that different! A closer examination reveals just how similar their approaches really are: Joel has created a new high level language that compiles to deployable units in PHP, VB, and Javascript, whereas David has created a domain specific language as an extension of interpreted Ruby syntax. Each thinks the other is completely insane. Yet ultimately, they are both demonstrating the power of crafting high level linguistic abstractions for a specific problem domain.
The idea of a software ecosystem where multiple technological and social models coexist has been talked about a lot - yet many commentators still view individual programming languages as islands, each with their own separate ecosystems and communities. So what about the language ecosystem? A gigantic entropic bundle of bits teeming with life and death, where postmodern programmers hack, munge, paste, and tweak, getting optimal results by choosing multiple libraries, languages, and platforms that are each best suited to a particular task. It’s not just a good idea, it’s also the only way that most seriously useful software actually gets built. Joel and David are well aware of the language ecosystem - both are promoting software that integrates multiple languages and stands on the shoulders of various comp-sci giants. So don’t believe the hype.