Date: 20 September, 2006 - 02:55
I have to say that I've been following the Java vs Ruby war for quite a while. Initially it started as a passing interest due to Nola Stowe's evangelism and heckling. I had a completely wrong idea of what it was and demonstrated that ignorance in this space but once I went to a presentation by Dave Thomas last year, I was convinced:
Ruby - especially because of Rails - is amazing and here to stay.
Therefore, in the past 10 months or so, I've watched technology with great interest. While the hype has been huge, there's been an even bigger warning sign for me. The sheer number of incredibly smart Java people who are picking up Rails. I don't mean that they've said "Hey, this is nifty". I mean people who have essentially dropped Java like a bad habit. There are
people like Jason Hunter (author of Java Servlet Programming), James Duncan Davidson (credited with inventing both Ant and Tomcat), Erik Hatcher (creator of Lucene and a coworker of a longtime friend), and probably more than I care to consider or admit. I've lived and breathed most of these projects since 2002 and can't help but notice that these gentlemen have been guiding lights in the community. When they make such an abrupt turn, you *must* take notice.
Therefore, despite the recent holy war between Joel Spolsky and David Heinemeier Hanson (creator of Ruby on Rails), when I saw Bruce Tate's Beyond Java sitting on the shelf this weekend, I flipped through it and saw even more of the above. I bought it and plan to read it, pass it around to some of the sharp Java people I know, gather feedback and report back here the results. With quite a few years in a handful of technologies, I think this will be an interesting exercise.
If you have questions or comments, let's hear them. If you think I'm an idiot for considering that Java is The Language to End All Languages, well, you should probably go back to covering your eyes and ears...









Agreed
Hi Keith,
I couldn't agree with you more on your assessment of the java and ruby landscape. It is very interesting to see so many people changing their minds as they start working with Rails. I for sure am a convert myself. I have only been involved in Rails for the past 6 months or so, doing my own small scale sites, but I have been completely blown away by the neat stuff I continue to find it does it for me. I have been doing Java work for close to 9 years now, but have already made the change to Rails in my mind. Unfortunately, I can't seem to find a job in Ruby or Rails in my area. Java and C# are still king and pay the bills for people looking to make a living. I'm hoping though that by starting my own company I might be ablet to push Rails and work in the technology I like to use.
Java is the new COBOL
I remember in 1996 feeling smug about how I was on the leading edge of programming with Java while Neanderthals chased after memory leaks and COBOL programmers were fixing Y2K issues. It was good to be king, but now I see Ruby whipper-snappers running circles around me and I feel like a hall monitor telling them to slow down.
Well, sort of. I've dabbled in Ruby and think it is great system but it will take a while before it can hold a candle to the dearth of third-party APIs available for Java. In this way Java has become something of a legacy system, but legacies (like COBOL, C and Java) are built because they work.
In 10 years the Ruby folks will feel like hall monitors when web 7.0 is developed.
Legacies
Yes, legacy systems are usually that because they work. Last year I worked with a COBOL organization just now looking to upgrade some of their operations.
But you are right, RoR doesn't have the full depth and breadthof the API's, etc that Java does. But the question is... does it need them?
Bruce Tate lays out the scenario that on the lower end CRUD-database type stuff is one of the areas where Java is especially threatened due to its sheer complexity to get rolling. Rails, PHP, or Python on the other hand...
some Java options
Let's bear in mind that Java developers haven't all stood still -- mesmerized by the oncoming lights of RoR. A promising project aims to do similar scaffolds for CRUD applications in Java:
http://www.trailsframework.org/
The immediate response from RoR advocates will be that you still live in the strongly typed world of Java. I personally like my variables to know themselves. It is oddly Aristotelian for variable "foo" to know its identity as a String or Integer before I start throwing it around, but I'm old fashioned that way.
Ultimately Java isn't what is threatened by RoR, but rather Java developers. Rails has shown a better way to cut out the tedium of building database apps. There is no reason that any sensible developer can't learn from the model.
Time factor
One thing people seriously seem to overlook is the time factor involved with developing RoR vs. pretty much anything else. With the amount of time people seem to save with it, I would think that you could try two or three different approaches and get feedback in the time it would take to build once elsewhere.
Quick Feedback
Reading further in the book....
That is the foundation of one of Tate's complaints about Java (and C, C++) where PHP, Ruby, etc fill the gap. The feedback loop is quick, normally as fast as you can save and hit refresh. When you're messing around with prototyping, this is the most important part.
Post new comment