If Java is a steady freight train, then Ruby on Rails is one of the sleek, super-fast Acela trains that whoosh travelers along Amtraks Northeast Corridor.
Java has come under pressure as being unfit for the Web tier because of its complexity, while scripting or dynamic languages such as PHP, Perl and Python continue to gain acceptance because of their ease of use and performance.
At both the EclipseCon and TheServerSide Java Symposium last week, two major Java-oriented events, the mantra seemed to be about how to make Java more like Ruby on Rails.
Indeed, due to the complexity of Java and the Java Enterprise Edition platform, several Java development framework projects sprang up to provide Java developers with lighter-weight, simpler-to-use options, including RIFE, Seam, Spring, Tapestry and Trails, among others.
However, the non-Java Ruby on Rails, which is based on the Ruby dynamic language, has posed perhaps the biggest threat to Java development on the Web tier.
And perhaps the biggest Java “pressure-izer” is David Heinemeier Hansson, the creator of Ruby on Rails, who shared his thoughts on the new development landscape with eWEEK.
“I think the dynamic languages are posing the greatest threat that Java has yet to face,” Heinemeier Hansson said. “Microsofts C# was more of the same and from a closed-source company at that. Lots of reasons to ignore. The dynamic languages, and perhaps Ruby on Rails in particular, are a faster, better and free way for a huge chunk of possible applications.”
There is little doubt the Java world is feeling the pressure from dynamic languages. Javas creator, James Gosling, cites a flamefest he incited by simply defending his position regarding dynamic languages. And at TSSJS, a panel of Java experts spent the better part of their discussion on how Java is taking it on the chin from dynamic languages.
“I think Rails is making the dynamic story too hard to ignore,” Heinemeier Hansson said. “With Perl and PHP, it was easy to ignore. Sure they got stuff done fast, but they also [allegedly] produced unmaintainable code. So the Java guys could lean back with content thinking that the complexities of their stacks were simple, inherent to solving substantial problems with maintainable code.”
Moreover, “Ruby on Rails comes along and shows the world that you can have your cake and eat it too,” Heinemeier Hansson said. Ruby on Rails shows “that you can be dynamic like PHP and Perl while still being even more maintainable and clean than Java,” he said. “This naturally presents the Java world with a conundrum. Even more so because they used to be able to claim that only Java [with Sun and IBM behind it] had the marketing clout needed to go somewhere in this world. But now Rails is all the rage. What are good minds to do?”
During his keynote at TSSJS, Geir Magnusson, a member of the Apache Software Foundation and an engineer responsible for architecture for Intels Middleware Products Division, asked the audience how many had tried out Ruby on Rails. More than half of those in attendance raised their hands. However, when he asked how many had done a production application with the framework, all but two or three people took their hands down.
That impromptu poll suggested that enterprise Java developers may not be ready to turn over key applications to Ruby on Rails.
However, “What Ive been seeing is that many Java developers flee upstream,” Heinemeier Hansson said. “Theyve conceded the low end—which is another word for what most people need most of the time—and aimed their aspirations at the really hard problems … that require real men with statically typed languages!” he said.
Rod Johnson, CEO of Interface21 Ltd. and founder of the Spring framework, said: “Java is a good language for the core domain model, but it may not be the best language for all tasks. Dynamic languages can be more concise than Java or better suited to particular tasks.” However, Johnson said he believes the Java community needs to consider the place for dynamic languages on the Java platform.
Indeed, said Heinemeier Hansson, “This is a classic case disruptive technology versus incumbents being played out (see Clayton Christensens Innovators Dilemma/Solution).”
Moreover, “Thats a long-winded way of basically saying that the hour of spotlight is up for Java,” Heinemeier Hansson said. “No, it wont be gone tomorrow, or five years from now. Or probably even 10 years from now. Just like COBOL is still around. But it wont be the center of attention anymore. And I think that is something fundamental about both Java the language and Java the culture. The Web is liberating minds at an impressive speed. Hand-waving FUD [fear, uncertainty and doubt] of but does it scale? is no longer effective because its been disproved every day.”
“I think Java is not going to be a COBOL; its not going to be a dinosaur,” said Ari Zilka, president and CEO of Terracotta. “The JVM [Java Virtual Machine] will have to change. There is a gap, but it will be filled. I think Java will innovate fast enough.”
Meanwhile, Heinemeier Hansson said had he been at TSSJS or EclipseCon, he doubts many of the enterprise Java developers would have been willing to hear much of what he would have to say.
“Some definitely would, but those are probably already jumping on the train,” he said. “Many other Java developers simply have too much invested in complexity in general and Java in particular. Change is hard and painful.
“So Id give it some more time,” Heinemeier Hansson said. “The tip is very near. Where before the majority of developers working in corporate environments would probably dismiss dynamic languages, I think were racing toward a majority that thinks it would be beneficial. And once that happens, well, its a short jump from 20 percent market share to 50 percent.”
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.