Rubinius | |
---|---|
Erscheinungsjahr: | 2006 |
Entwickler: | Evan Phoenix, Brian Ford und andere |
Aktuelle Version | 5.0[1] (16. Mai 2020) |
Beeinflusst von: | Smalltalk, Erlang, Haskell |
Betriebssystem: | macOS, Linux, FreeBSD |
Lizenz: | BSD-Lizenz |
rubinius.com |
Rubinius ist ein Compiler für die Programmiersprache Ruby. Ziel der Implementierung ist es so viel wie möglich in Ruby selbst zu schreiben und dabei speichereffizienter als die offizielle Ruby-Implementierung zu sein. Rubinius orientiert sich stark an der Referenzimplementierung der Programmiersprache Smalltalk-80.[2]
Abgesehen von der Virtuellen Maschine ist Rubinius gänzlich in Ruby geschrieben. Dies umfasst auch etwa den Parser, den Compiler oder die Vererbung. Um dies zu realisieren, setzt man auf Bootstrapping: Man muss den Compiler ausführen, damit sich dieser selbst in Bytecode umwandeln kann. Dies geschieht entweder von einer bereits kompilierten Rubinius-Version, oder einer anderen Ruby-Implementierung aus.
Ab Version 0.9 ist Rubinius in der Lage Ruby On Rails auszuführen.[3] Die aktuelle Version wird als kompatibel zu Ruby 2.1.0 angesehen, was bisher durch das RubySpec Projekt sichergestellt werden sollte, dieses wurde mit 31. Dezember 2014 jedoch eingestellt.[4] Experimenteller Support für 1.9 ist verfügbar. Die sich aktuell in Entwicklung befindende Version 1.x hat derzeit mehrere experimentelle Virtuelle Maschinen, etwa für die Integration der Low Level Virtual Machine, mit dem Ziel die Performance zu verbessern.[5]
Mehrere Entwickler, darunter Sasada Koichi, der Entwickler von YARV (die VM von Ruby 1.9), sind der Ansicht, dass Rubinius auf lange Sicht das größte Optimierungspotential bereithält.[6] Bereits jetzt führt Rubinius reinen Rubycode schneller aus als andere Implementierungen.[7][8] Hier sei aber anzumerken, dass andere Implementierungen dies kompensieren, indem sie den Kern der Sprache nicht in Ruby, sondern in einer anderen Sprache, zum Beispiel C oder Java, implementieren und damit im Moment bessere Resultate erzielen.[9]
Die Entwicklung an Rubinius wird maßgeblich von dem Unternehmen Engine Yard vorangetrieben, welches zurzeit zwei Entwickler vollzeit daran arbeiten lässt.