Unterwegs zu Perl 7: Verzicht auf unreife Features soll Entwicklung voranbringen

Stabile Signaturen und Entfernung von "Misfeatures" – Anregungen des Perl-Entwicklers Dan Books könnten das Perl-Projekt aus der Governance-Krise herausführen.

In Pocket speichern vorlesen Druckansicht 7 Kommentare lesen

(Bild: Sashkin/Shutterstock.com)

Lesezeit: 4 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Die Anzeichen mehren sich, dass es bei Perl weitergeht: Im Rahmen der virtuellen FOSDEM 2021 hatte ein Entwickler den Stand der aktuellen Feature-Pläne bei Perl diskutiert – der in der Perl-Community bekannte Entwickler Dan Books (alias Grinnz) hat die Vorschläge aufgegriffen und legt in seinem Blog nun eine Agenda vor, die der Community-betriebenen Programmiersprache einen gangbaren Weg in Richtung Hauptversion weist.

Im August 2020 war es innerhalb der Perl-Community zu Unstimmigkeiten wegen bevorstehender größerer Änderungen gekommen, die mit der Abwärtskompatibilität gebrochen hätten. Die damals bestehenden Pläne für die kommende Hauptversion 7.0 wurden verworfen, die anschließende Governance-Krise des Perl-Projekts hatte zu einem vorübergehenden Stillstand der Entwicklung geführt.

In dem mit "Perl 7: A Modest Proposal" betitelten Blogeintrag ist Books' Kernanliegen, dass die Programmiersprache künftig nur noch in Major Releases neue Feature-Pakete erhalten soll. Die bisherige Release-Praxis scheint etwas willkürlich gewesen zu sein, die Unterschiede zwischen den verschiedenen semantischen Versionen waren offenbar selbst Eingeweihten zu wenig transparent. Books schlägt vor, alle experimentellen Features, die noch nicht ausgereift sind, für die stabile Version 7 nicht weiter zu berücksichtigen, sondern auf eine kommende Version 8.x zu vertagen. Um Perl 7.0 zu ermöglichen, sei Konzentration auf wesentliche Themen hilfreich, die dann schon weit genug gediehen sind.

Stabile Signaturen sollen durch ein neues Signatures-Feature hinzukommen, das Grunddesign ist bereits erprobt und gilt als stabil. Den Status "Feature Complete" könnte es in Kürze erhalten, zurzeit laufen offenbar noch abschließende Tests zur Kompatibilität mit einigen anderen Features (weshalb die Signatures derzeit trotz ihres fortgeschrittenen Entwicklungsstands noch als experimentell anzusprechen sind). Die Stabilisierung der Signaturen war auch ein Vorschlag in Paul Evans' Talk auf der diesjährigen FOSDEM.

Einige missglückte Features hat Books in seinem Blogeintrag identifiziert, so sollten die in Perl 5.34 beziehungsweise teils schon in Perl 5.32 an Bord geholten Fehlfunktionen indirect, multidimensional und bareword_filehandles entfallen. Die von Books als "Misfeatures" bezeichneten Elemente gelten nicht als Best Practice, und in der Community ist ihr Einsatz umstritten. Books schlägt vor, die drei Features in der neuen Hauptversion zu entfernen.

Außerdem schlägt der Blogger vor, dass analog zu use VERSION auch eine neue Funktionalität use warnings eingeführt wird, mit der Entwickler ab Perl 7 optional Warnhinweise zuschalten können sollen. Laut Books wäre das konsistent mit dem bereits üblichen Einsatz von use-Befehlen. Ein weiterer Vorschlag betrifft die Deklaration der UTF-8-Codierung statt nativer Single-Byte-Codierung: Um Perl den Standards moderner Programmierung weiter anzunähern, könnte Perl 7 zum Beispiel über eine noch zu implementierende Funktion use utf8 UTF-8 als Standard vorschreiben – der Effekt ließe sich an den Befehl use v7 knüpfen (der Vorschlag stammt nicht vom Verfasser des Blogeintrags, sondern von einem anderen Mitglied der Perl-Community namens Zefram). Die bisher notwendigen fünf Zeilen Code

use v5.32;
use warnings;
use utf8;
use experimental 'signatures';
no feature qw(indirect multidimensional bareword_filehandles);

ließen sich dann durch eine einzige Zeile ausdrücken:

use v7;

Ob und wann Perl 7 erscheint, ist zum jetzigen Zeitpunkt unklar, einen Überblick zum Stand der Dinge bieten die FAQ des Projekts auf GitHub: Zunächst müsse die Community sich einig werden, wo die Reise hingehen soll, ist dort zu lesen. Ende Dezember 2020 hat ein Kernteam aktiver Perl-Entwicklerinnen und -Entwickler einen Steering Council gewählt: Ricardo Signes, Neil Bowers und Sawyer X. Dieses Dreierteam orientiert sich bei der Lenkung des Projekts künftig an einem Modell wie in Pythons PEP 13 (Python Language Governance) beschrieben.

Erste Reaktionen auf die aktuellen Vorschläge für die neue Hauptversion signalisieren Zustimmung, im Detail nachzulesen in Dan Books' Blogeintrag. Der Autor verweist auf zwei frühere Proposals zur Entwicklung von Perl und bezieht auch Stellung zur Governance-Krise des Entwicklerteams. Der Vortrag von Paul Evans mit weiteren Vorschlägen für Perl-Features lässt sich auf den Seiten der FOSDEM 2021 abrufen.

(sih)