Programmiersprache: Erste Preview für Ruby 3.0 veröffentlicht

Neben einigen Neuerungen hat die erste Vorabversion der Programmiersprache Ruby zwei neue experimentelle Features im Gepäck.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 27 Beiträge
Von
  • Madeleine Domogalla

Ruby-Erfinder Yukihiro Matsumoto ("Matz") hat eine erste Preview für die dritte Major-Version der Programmiersprache Ruby herausgegeben. Die Vorabversion hält einige Neuerungen und zwei experimentelle Features bereit.

Erst Anfang September 2020 hatte Yukihiro Matsumoto bekanntgegeben, dass das nächste Ruby-Release die Versionsnummer 3.0 erhalten wird. Die erste Preview von Ruby 3.0 bringt Unterstützung für RBS mit, eine Sprache zur Beschreibung der Struktur von Ruby-Programmen. Type-Checker, inklusive Type-Profiler und andere Tools, die RBS unterstützen, sollen Ruby-Programme mit RBS-Definitionen besser verstehen.

Entwickler können die Definition einer Klasse oder eines Moduls wie folgt vornehmen: Methoden lassen sich in Klassen und Instanzvariablen in ihren Types definieren. Darüber hinaus sind Vererbungs- oder Mischbeziehungen möglich. Das Ziel von RBS ist es, allgemein bekannte Patterns in Ruby-Programmen zu unterstützen, und es ermöglicht das Schreiben komplexer Types, einschließlich Union-Types, Methodenüberladung und Generics.

Außerdem soll RBS auch Duck-Typing mit Schnittstellentypen unterstützen. Duck-Typing nennt man ein Konzept der objektorientierten Programmierung. Dabei beschreibt nicht die Klasse den Type eines Objekts, sondern das Vorhandensein bestimmter Methoden oder Attribute ist ausschlaggebend für den Type eines Objekts. Die dritte Major-Version von Ruby wird mit rbs gem ausgeliefert, was das Parsen und Verarbeiten von in RBS geschriebenen Type-Definitionen ermöglicht.

Die Preview hält zudem ein experimentelles Feature bereit: Ractor, eine dem Actor-Modell ähnliche gleichzeitige Abstraktion, die eine parallele Ausführungsfunktion ohne Thread-Sicherheitsbedenken bietet. Entwickler können mehrere Ractors erstellen und diese parallel ausführen. Auch das Erstellen von thread-sicheren parallelen Programmen ist möglich, da Ractors normale Objekte nicht teilen und somit nicht gemeinsam nutzen können. Die Kommunikation zwischen den Ractors funktioniert via Nachrichtenaustausch (Message Passing).

Experimentell ist auch der neue Scheduler in Ruby 3.0. Thread#scheduler kommt zum Abfangen blockierender Prozesse zum Einsatz. Das neue Feature soll eine leichtgewichtige Nebenläufigkeit ermöglichen, ohne vorhandenen Code zu ändern. Eine Liste aller Klassen/Methoden, die zum jetzigen Zeitpunkt unterstützt werden, findet sich in den Release Notes. Dort erhalten Interessierte zudem weitere Informationen zur ersten Preview von Ruby 3. Anfang September 2020 hatte Ruby-Erfinder Yukihiro Matsumoto erste Einblicke in die kommende Major-Version gegeben.

(mdo)