Rubinius

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.

  • PyPy, ein ähnliches Projekt für Python
  • JRuby, eine Ruby-Implementierung in Java

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Release 5.0. 16. Mai 2020 (abgerufen am 17. Mai 2020).
  2. Adele Goldberg: Smalltalk-80: The Language and its Implementation. Addison-Wesley, ISBN 978-0-201-11371-6 (Online [PDF; 32,0 MB; abgerufen am 18. September 2021]).
  3. Evan Phoenix: Rails on Rubinius. 17. Mai 2008, archiviert vom Original am 5. März 20160; abgerufen am 26. Februar 2017 (englisch).
  4. RubySpec Has Been Closed. Archiviert vom Original am 1. Januar 2015; abgerufen am 26. Februar 2017 (englisch).
  5. Evan Phoenix: Rubinius Status. 5. September 2008, archiviert vom Original am 19. August 2016; abgerufen am 26. Februar 2017 (englisch).
  6. Koichi Sasada: Future of RubyVM. 2008, abgerufen am 26. Februar 2017 (englisch).
  7. Evan Phoenix: Rubinius. 2008, abgerufen am 26. Februar 2017 (englisch).
  8. Charles Nutter: Using Rubinius's Kernel in JRuby. 29. Oktober 2008, abgerufen am 26. Februar 2017 (englisch).
  9. Antonio Cangiano: The Great Ruby Shootout (December 2008). 9. Dezember 2008, abgerufen am 26. Februar 2017 (englisch).