This post originated from an RSS feed registered with Ruby Buzz
by David Heinemeier Hansson.
Original Post: JAOO '05: Java has lost its aura of invincibility
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
I've been going to JAOO for three years and over that time I've seen a remarkable change in atmosphere among a growing number of the attendants: Java has lost its aura of invincibility. It's no longer blasphemy to suggest that neither Java, J2EE, and the rebel frameworks are too complex for their own good. That it's both a fundamental, deep, and cultural problem where the solution is unlikely to come from within.
And, even more interestingly, that it's prudent to investigate alternatives for a large percentage of the applications that are currently being developed using these technologies. There's a growing sentiment that picking Java as a "corporate standard" is nonsensical. Dave Thomas recently phrased this beautifully in terms of sledgehammers and nuts recently:
Using the full might of a J2EE stack to write a small stand-alone application is using a sledgehammer to crack a nut. But I keep hearing the sound of nuts being pulverized as developers seem to think that using anything other than J2EE is somehow unprofessional.
In a telebriefing about Rails for the Burton Group yesterday, Dave Geary told an audience of hundreds of CxOs and team leaders from Fortune 500 companies that Java and its stacks are greatly overused for web development. And that his estimate would be that 70-80% of the applications currently being developed with these technologies would be better off using Ruby on Rails.
Dave Thomas, who also participated, noted that while Geary's numbers were probably right, but he was even more interested in the first 40%. That share of applications were he would consider it negligent to use the current Java-based stacks when something like Ruby on Rails could offer such a big advantage.
Regardless of the numbers, the writing is certainly on the wall: Java and its stacks are grossly over-serving the majority of web applications that are built today. It's not that it should never be used, just that it shouldn't be used nearly as often as it currently is.
Ruby on Rails today looks poised to eat Java's mindshare on the web tier. If not Rails, then something else. Empirically 10 years seems like the right
point. Java's viewed as solid and stable, mature enough for the most stodgy
business folks. That leaves a large soft underbelly for a technology intended
to help small teams (10 or fewer) who just want to make a site that's good
enough without paying a high price in mental effort.
With Bruce Tate's new book Beyond Java, this growing discontent with the status quo is given voice on paper. In its opening remarks, Tate describes the motivation for the book:
But I’ve come to recognize some real limitations in the Java language, and many of the frameworks that power it. For certain problems, Java just isn’t productive enoughfor me any more. I’ve experienced success with some alternatives. Though a language can last half a century to support legacy applications, I know no language can keep its leadership and its luster forever. Java's reign will end. It’s not a question of if, but when.
All these prominent voices have compounded to present a very different atmosphere today than the JAOO of 2003. I vividly remember debating Ruby in the enterprise with Paul Hammett of ThoughtWorks at that conference. While very sympathetic to the benefits of Ruby, he had a decidedly disillusioned opinion on anything going up against the Java (and C#) behemoths in the corporate world. Today, ThoughtWorks is working on commercial Ruby on Rails projects and looking for more.
Things are different today. It just requires enough hope and conviction that things can change. Talking to the other Dave Thomas at JAOO this year, I got the impression, though, that people who've been around for a long time doesn't quite believe it yet. Especially former Smalltalkers that saw the Java juggernaut crush everything in its path. Here's to hoping that they do pick it up again and help us show the world what we had all along.
In summary: Java and J2EE isn't going any where — neither should they. As an industry, we should merely realize that the sledgehammer is grossly over-used. Reserve its heavy-handed might to those cases where its truly needed. Whether that's 20 or 30% of the time that its currently being applied.