!Ruby.kind_of? Java

Published at: 25.XI.2005 03:52 CET
Categories: english, java, ruby

Fueled by a post by Danny. My take on the Java versus Ruby hype.

I am growing more and more tired of the comparison between Java and Ruby. They just don’t match.

Java is this enterprise monster which is very much loved by large companies for being enterprise-ready, cluster-aware, high-end, re-usable, management-compliant, what-ever. And it is loved by ICT consultants because it mostly involves huge over-budget, running-along-deadline projects which will make them loads of money. Standards are developed through a process of guidelines, specifications and reviews. In the end it’s an OO language, unfortunately constrained by its popularity.

Ruby is just another scripting language which was born from the hands of a guy in Japan out of boredom during the Japanese economic depression. Like lots of OSS projects its driving force is fun and it is fueled by passion. Its libraries are mostly ad hoc and the best of them are incorporated into the core. It’s also an OO language, build to evolve.

Besides being OO, Java and Ruby share passion. No doubt mister Gosling loves working on Java as much as Matz loves working on Ruby. The problem lies in the passion of the developers using these languages, especially the Java developers. This love is fading and developers are looking at other languages to make their lives easier; first it was Python and now Ruby is the hip new thing.

Love is fading because Java lags behind in programmer friendly features. C# showed a lot of uncovered areas in Java years ago (end of 2002) and Sun just recently caught up with Java5 (mid 2004). Here recently is more than a year ago, which seems like centuries ago, but in Java’s case. Production systems running Java5 are still rare.

It’s becoming harder and harder to develop software using Java without a fat IDE with plenty of plugins. Don’t get me wrong I love working with eclipse, it solves a lot of problems for me, especially in the area of refactoring code, but I draw the line at the need for code generation ranging from simple getter/setters to EJBs and services. IMHO this just shows you platform is not flexible enough to solve your problem.

Please stop comparing Java and Ruby! If you are worried about your knowledge being outdated soon, don’t be. COBOL still pays a lot of peoples bills and Java will do so many years to come. On the other hand, if you like programming and want to have fun doing it; learn new languages, at least one a year. And there’s a lot of cool stuff to choose from; Perl6, Haskel, Lua, C#, Python, IO etc.