Programmiersprache: Was in Ruby 2.7 landen wird

Mit Veröffentlichung einer ersten Preview-Version wird offenbar, womit Ruby-Entwickler im Dezember rechnen dürfen, wenn Ruby 2.7 fertig sein wird.

In Pocket speichern vorlesen Druckansicht 13 Kommentare lesen
Programmiersprache: Was in Ruby 2.7 landen wird
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Wer wissen will, was in der nächsten Version der Programmiersprache Ruby landen soll, der kann sich nun einen Überblick in der ersten Preview von Ruby 2.7 verschaffen. Das fertige Release soll wie in den Vorjahren wieder im Dezember herauskommen.

Als wichtigste Features von Ruby 2.7 werden nun die neue GC.compact-Methode, Pattern Matching und Überarbeitungen an der REPL (Read–eval–print loop) herausgestellt. Mit Compaction GC lässt sich fragmentierter Speicherplatz defragmentieren. Diese Funktion komprimiert Live-Objekte im Heap, sodass sich weniger Seiten verwenden lassen und der Heap CoW-freundlicher (Copy-on-write) sein kann. Hiermit möchte man eine Speicherfragmentierung bei Multithread-Ruby-Programmen vermeiden.

Das insbesondere in funktionalen Programmiersprachen gesetzte Pattern Matching, zu Deutsch Musterabgleich, ist ebenfalls neu in Ruby 2.7, hat aber erst mal nur experimentellen Status. Es kann ein bestimmtes Objekt durchlaufen und seinen Wert zuweisen, wenn es mit einem Muster übereinstimmt:

case JSON.parse('{...}', symbolize_names: true) 
in {name: "Alice", children: [{name: "Bob", age: age}]}
p age
...
end

Die IRB (Interactive Ruby Shell) unterstützt jetzt die mehrzeilige Bearbeitung. Das geschieht durch reline, eine mit GNU readline kompatible Rubin-Implementierung. Sie bietet auch eine Integration mit dem Ruby-Dokumentationswerkzeug RDoc. In IRB können Entwickler sich die Referenz für eine bestimmte Klasse, ein bestimmtes Modul oder eine bestimmte Methode anzeigen lassen. Außerdem werden nun Sourcezeilen eingefärbt, die in binding.irb angezeigt werden und Ergebnisse für Objekte der Kernklasse prüfen.

Weitere experimentelle Feature sind der Methodenreferenzoperator ".:", nummerierte Parameter als Standardblockparameter und eine sogenannte Beginless/Startless Range. Am mit Ruby 2.6 eingeführten JIT-Compiler wurde ebenfalls geschraubt. Er hat aber weiterhin experimentellen Charakter. Weitere Neuerungen listet die Blog-Ankündigung zum neuen Sprachrelease auf. (ane)