Saturday, October 20, 2007

Ruby wins the race

Taken from here: http://www-128.ibm.com/developerworks/java/library/j-java2007.html:

"The world would be a boring place if we only spoke one language. While the Java platform is an excellent choice for full-blown application development, it's never really fit the need for small programs or macros. Java 6 recognized this by adding the javax.script package for interoperating with scripting languages like BeanShell, Python, Perl, Ruby, ECMAScript, and Groovy as well as an invokedynamic virtual machine instruction to allow direct compilation of dynamically typed languages to the Java VM.

For 2007, my money is on Ruby, although it's not actually my personal favorite. Python code seems to me a lot cleaner and easier to understand than Ruby code, and I think most Java programmers would agree. However, Python came out at the wrong time. Many developers had to make a choice between learning Python and learning Java code, and most chose Java code. Now that they've finally digested the Java syntax and are ready to add another language to their toolbox, they want tomorrow's language, not yesterday's, and that language looks to be Ruby. Most importantly, Ruby has an absolute killer app in Ruby on Rails. Its simplicity is incredibly attractive to the legion of disillusioned Java Enterprise Edition (JEE) developers.

Beyond Rails, the JRuby project offers as good or better integration with existing Java code and libraries than the other scripting languages. In fact, JRuby may well surpass the standard Ruby distribution and become the preferred platform for Ruby programmers, not just Java programmers doing a little Ruby on the side. It's that good. Python programmers will object that they've had the best aspects of JRuby for years with Jython, and they're right, but I'm talking about what will happen in 2007, not what should happen. It's sad but true: Ruby has the momentum and Python doesn't.

Other scripting languages will increasingly be relegated to the sidelines. Perl is too old-fashioned and doesn't fit modern applications very well. Groovy suffers from a lack of a clear vision and a penchant for choosing computer-science buzzwords over usability and familiarity. BeanShell, Jelly, and probably half a dozen others have never managed to attract more than a niche following. By this time next year, it will be all over but the shouting: Ruby will have become the Java programmer's scripting language of choice."

No comments: