Die Programmiersprache Ruby hat im Dezember ihr 30-jähriges Jubiläum gefeiert. Die Veröffentlichung von Ruby 4.0.0 führt „Ruby Box” und den Just-in-Time-Compiler „ZJIT” ein und enthält zahlreiche Verbesserungen.
Ruby Box ist eine neue noch als experimentell bezeichnete Funktion, die eine Trennung von Definitionen ermöglicht. Ruby Box wird aktiviert, wenn die Umgebungsvariable „RUBY_BOX=1“ angegeben wird. Die Klasse lautet „Ruby::Box“. In einer Box geladene Definitionen werden laut den Entwicklern in der Box isoliert. Ruby Box kann Monkey Patches, Änderungen an globalen/Klassenvariablen, Klassen-/Moduldefinitionen und geladene native/Ruby-Bibliotheken von anderen Boxen isolieren/trennen.
Als Anwendungsfälle gelten etwa das Ausführen von Testfällen in einer Box, um andere Tests zu schützen, wenn der Testfall Monkey Patches verwendet, um etwas zu überschreiben. Auch die parallele Ausführung von Web-App-Boxen, um Blue-Green-Deployment auf einem App-Server in einem Ruby-Prozess durchzuführen, gilt als Einsatzmöglichkeit.
Mit ZJIT kommt ein neuer Just-in-Time-Compiler (JIT), der als Nachfolger von YJIT entwickelt wurde. Rust 1.85.0 oder neuer sind laut der Ankündigung nötig, um Ruby mit ZJIT-Unterstützung zu kompilieren. Der neue Compiler für Ruby soll die Leistungsgrenze erhöhen und mehr Beiträge von außen ermöglichen, indem man zu einem traditionelleren Methodencompiler wechsle. Allerdings gibt es noch etwas zu tun. Das Team berichtet, dass ZJIT zwar schneller als der Interpreter sei, aber noch nicht so schnell wie YJIT. Die Empfehlung der Entwickler lautet deshalb, mit ZJIT zu experimentieren, aber mit dem produktiven Einsatz noch auf Ruby 4.1 ZJIT zu warten.




