September 7th, 2006

(JRuby || IronPython) && !Jython

Programming languages are born, grow a community of users, and then wither. They almost never die, but we often wish some would. The ones that thrive fill an ecological niche, such as searching a database, or helping to install other programs.

By sheer numbers, the language of choice today is Java. I see the benefits, but its not my language of choice.

At the moment I like Python, for the benefits in my usual environments. For what its worth Google likes it too. Ruby recently has become a serious contender for the same niche. I'm watching this battle closely. Just last night I picked up the Ruby Cookbook to read while in Thailand. In hindsight it seems I'm gonna get good use out of it.

This battle is important, because Python and Ruby are minor languages in a similar niche. I need to be capable in either, but its probably not the best use of limited resources to stay up to date and 'fluent' in both.

In Dec 2005, I posted about Jython. It's a way of making Java and Python talk together. I'd hoped this could be a useful tool for me, connecting my Python to the wider world of Java. While still useful in its niche, that project has been a bit too quiet and not growing as I'd hoped. I'd overlooked that Microsoft had also noticed Jython.

I suspect they viewed Jython as a threat to .Net. Maybe they just thought it was a good idea to bring benefits of Python into their stable. Maybe they just realized he was a real smart guy. Either way they hired the guy who started Jython and put him to work on IronPython.

Here's where it gets messed up. Java just announced they're hiring the JRuby team. Its an alliance that leaves my skills spread across battle lines.

I would have preferred to see                         Ruby+.Net    vs  Python+Java
Instead I've got a foot in both camps with    Ruby+Java   vs  Python+.Net

Python + Java = Jython           = dying & unofficial
Python + .Net  = IronPython   = growing & official
Ruby    + Java = JRuby           = growing & official

The message I guess is how important staying up to date is, and how quickly the situation can change. Maybe I'm just frustrated. I'd consciously avoided learning this new minor language, for fear of being the computer world's equivalent of an Esperanto and Lojban scholar.

But I think I'm equally excited.  This finally justifies dedicating a few brain cells to Ruby, and her pretty step sister Ruby on Rails.

Maybe most importantly, perhaps I can stop looking back towards Java and .Net, as they seem to be crawling towards my preferred territory.