Auf der Railsconfeurope wurde das JRuby-Team gefragt, wo es Unterschiede zwischen JRuby und der C-Implementation des Ruby-Interpreters (CRuby, oder MRI [Matz’ Ruby Implemenation]) gibt. Antworten:
- JRuby kennt keine Continuations. Grund ist, daß der JRuby-Interpreter keine ausreichende Kontrolle über den JVM-Stack hat.
- JRuby benutzt native Threads, CRuby Green Threads
- fork() gibt es in JRuby nicht
Die Unterschiede sind irrelevant für Rails
Ein Ziel des JRuby-Teams ist es, daß Rails-Applikationen ohne Änderung auf JRuby laufen. Um das zu erreichen, werden auch Bugs und Quirks des CRuby-Interpreters nachgebildet. Wenn man einen möglichst kleinen Testcase einreicht, der einen Unterschied zwischen JRuby und CRuby dokumentiert, sei dies so gut wie gefixt, meinte Ola Bini.