I’m excited about JRuby for all the standard reasons, and the move of the JRuby team-leads to Sun is a great sign. But somethings been eating at me. Java has a language specification. Ruby does not. Java’s language specification opens the platform for some types of innovation/differentiation. Think Jikes.
Now back to JRuby. Ruby is covered by a significant amount of unit tests. The JRuby guys (Charles and Thomas) indicate that they have to reverse engineer a spec from the tests, and invoke a lot of brute force to get Ruby to run on the JVM. This seems problematic, but you could argue that once they get 100% test success, they’re good to go right?
I think you’d be wrong. What happens with the next version of Ruby? JRuby would be perpetually exposed to chasing the updates to Ruby. Do we expect Matz to keep JRuby in mind? I don’t think that’s entirely reasonable - not without a spec. Ruby is intended to be terse, elegant, convenient and powerful. Running on the JVM is not a core requirement.
I don’t think this spells doom, but my flag is raised, and I’d be curious to hear about how my analysis is incorrect, or what might be done (or is being done) to address this.