Momentan sind mehrere Ruby-Implementierungen in Arbeit. Auf was freust du dich und warum? Verwenden Sie aktiv eine Nicht-MRI-Implementierung in der Produktion?
Einige der Optionen umfassen:
Ruby 1.9 (YARV) gibt uns eine gute Idee, wo Rubin kursiert, aber ich würde es nicht für den Produktionseinsatz empfehlen. Es ist zwar viel schneller als 1.8, aber auch einige Teile der Syntax ändern sich ständig, daher kann ich es nicht als stabil bezeichnen. Es hat einige interessante neue Funktionen und eine Syntax, die mit der Zeit sicherlich in alle anderen Implementierungen Eingang finden werden.
JRuby und IronRuby sind nützlich, da sie Ruby den Zugang zu einer ganzen Reihe neuer Bibliotheken und Umgebungen ermöglichen, in denen Ruby sonst nicht verwendet werden kann. Ich habe selbst noch nicht viel Nutzen für sie gefunden, aber finde es großartig, dass sie existieren. Sie können es Ruby erlauben, Unternehmensumgebungen zu infiltrieren, wo es sonst nicht erlaubt wäre. Das kann nur gut sein.
Rubinius und Maglev sind wahrscheinlich die interessantesten Projekte, aber auch diejenigen, bei denen ihr Nutzen für die Gemeinschaft wahrscheinlich am weitesten in die Zukunft reicht. Rubinius könnte sich zu einer hochmodernen "reinen" VM für die Ruby-Sprache entwickeln, wodurch Ruby-Code viel schneller laufen kann als jetzt. Maglev scheint auch sehr vielversprechend zu sein, unterstützt durch mehr als 20 Jahre VM-Erfahrung. Es wird auch Funktionen bieten, die über eine Standard-VM hinausgehen, aber natürlich wird dies auf Kosten der Code-Portabilität gehen.
Insgesamt bin ich am meisten begeistert von der Konkurrenz zwischen diesen Implementierungen. Mit konkurrierenden Projekten, die alle daran arbeiten, Rubin besser zu machen, kann das Rubin-Ökosystem nur stärker werden. Von dem, was ich gesehen habe, während der Wettbewerb existiert, ist es freundlich; jedes Projekt gibt und nimmt Ideen von einander. Die von den Teams von JRuby und Rubinius geleistete Arbeit bei der Erstellung einer Ruby-Spezifikation ist wahrscheinlich das wichtigste Ergebnis, da es dazu beiträgt, dass alle Implementierungen kompatibel bleiben.