Fast zwei Jahre nach der ersten Ankündigung von Perl 7 kündigte das Perl Board of Directors (PSC) Pläne für die Zukunft der Programmiersprache an. Nach der ursprünglichen Idee soll Perl 7 einerseits alte Gewohnheiten beseitigen und andererseits häufig verwendete Module und Pragmas automatisch einbinden, um den Standardcode zu reduzieren. Da dies einige kritische Änderungen mit sich bringen würde, entbrannte eine Debatte über die Pläne, auf die das PSC nun reagiert.
Als wichtigen Grund für die geplanten Änderungen nennt der Entwickler Sawyer X 2020 in seiner Ankündigung für Perl 7, dass alle Minor Editions der Programmiersprache seit ihrer Einführung im Jahr 1994 aus Gründen der Abwärtskompatibilität viele Features und Einstellungen enthalten. Perl 7 sollte sich nicht mehr um diese vererbten Probleme drehen. Die Ankündigung erfolgte während der Keynote der Perl Virtual Conference „Conference in the Cloud“. Sawyer X ist inzwischen von seinen Spitzenpositionen zurückgetreten.
Steuerung der Weiterentwicklung
In den anschließenden Diskussionen trafen sehr unterschiedliche Meinungen aufeinander. Neben Sprachangleichung und Abwärtskompatibilität wurde die Verantwortung für die Weiterentwicklung gelegt. Der Sprachschöpfer Larry Wall ist nicht mehr beteiligt. Als erstes Ergebnis der Debatte erhielt Perl eine neue Governance-Struktur, Details dazu finden sich auf GitHub.
Die Hauptsprachendiskussion befindet sich immer noch auf der perl5porters-Mailingliste (p5p). Außerdem gibt es ab 2020 einen dreiköpfigen Vorstand von Perl, der im Zweifelsfall die Macht hat, über die Zukunft von Perl zu entscheiden. Das p5p-Kernteam wählt PSC-Mitglieder jährlich nach einer neuen Version der Programmiersprache aus.
Reibungslose Übergangspläne
Das Komitee hat drei Eckpfeiler für die Zukunft von Perl identifiziert: Erstens muss der vorhandene, gut geschriebene Perl-5-Code in zukünftigen Sprachversionen weiterlaufen. Ausnahmen gelten unter anderem, wenn ein Sicherheitsfehler Änderungen erfordert, die nicht abwärtskompatibel sind. Zweitens möchte PSC schnell neue Funktionen einführen, für die bereits ein RFC-Prozess (Comment Request) auf GitHub dokumentiert ist. Letztendlich sollen die neuen Features einfach zu bedienen sein, und PSC will Entwickler dazu animieren, sie zu nutzen.
Sogenannte Funktionsprotektoren (Verwendung einer Funktion) markieren neue Funktionen im Perl-Code, die nicht abwärtskompatibel sind, beispielsweise weil die Neuerung auf den Namen einer eigenen Funktion stößt. Die Warnung gilt nicht für neue Funktionen, die in älteren Versionen einfach einen Syntaxfehler auslösen. Als Beispiel listet der PSC-Blogpost alles auf, was für Perl 5.36 geplant ist.
Wenn Innovationen als experimentell gelten, ist ihre Zukunft ungewiss. Sie können sich in späteren Ausgaben ändern oder sogar erneut veröffentlicht werden. Daher sollten diese Funktionen nicht in den Produktionscode aufgenommen werden.
Ab Version 5.10 gibt es von Perl bekannte Versionspakete, die alle Neuerungen der ersten Version in eine Zeile packen. Verwenden Sie für das kommende Perl 5.36 v5.36; Also folgende Codezeilen:
erfordert v5.36; streng verwenden; Warnungen verwenden; Verwenden Sie die ‘sagen’-Funktion; Verwenden Sie die Funktion “Status”. Verwenden Sie die ‘current_sub’-Funktion; Verwenden Sie die ‘fc’-Funktion; Verwenden Sie die Funktion ‘lexical_subs’; Verwenden Sie die Funktion “Signaturen”. Verwenden Sie die ‘isa’-Funktion; Verwenden Sie die Funktion ‘bareword_filehandles’; Verwenden Sie die “bitweise” Funktion; Verwenden Sie die ‘evalbytes’-Funktion; Verwenden Sie die Funktion ‘postderef_qq’; Verwenden Sie die Funktion ‘unicode_eval’; Verwenden Sie die Funktion ‘unicode_strings’; es gibt keine “indirekte” Funktion; es gibt keine “mehrdimensionale” Funktion;
PSC möchte Entwickler ermutigen, die abgekürzte Form zu verwenden, da deutlich wird, für welche Version die Software geschrieben ist, und unnötiger Vorlagencode vermieden wird.
Der sanfte Weg zu Perl 7
Nach der Ankündigung von 2020 soll Perl 7 auf Basis von Perl 5.32 erscheinen, das vor zwei Jahren veröffentlicht wurde, mit einigen wesentlichen Änderungen. Ein Jahr später sollte Perl 5.34 als Grundlage dienen, um die Version zu überspringen, die große Umwälzungen hätte enthalten sollen. Die aktuellen Pläne sehen eher eine ruhige Entwicklung als einen klaren Zusammenbruch und eine Katastrophe vor. PSC möchte weiterhin neue Features in der Perl-5-Reihe veröffentlichen und alle experimentellen Features aktivieren, stabilisieren oder entfernen.
Kommt die Kommission “manchmal in der Zukunft” zu dem Schluss, dass Neuerungen nach Perl 5 eine neue Basis für Perl rechtfertigen, sollte sie auf Perl 7.0 upgraden. Die neue Version wird standardmäßig abwärtskompatibel mit Perl 5 sein. Verwenden Sie erneut den Befehl bundle use v7, um alle neuen Funktionen von Perl 7 zu nutzen. notwendig. Dies sollte Modern :: Perl und ähnliche Module bringen.
Wie in Serie 5 müssen Ausgaben von 7.x mit gerader Dezimalstelle jedes Jahr erscheinen: 7.2, 7.4, 7.6 usw. Darüber hinaus sind 5.xx weitere Editionen geplant.
Fehlende 6 und kommende 36
Die kommende Jump-Version erhält ihren Namen, da sie auf dem Weg von 5 nach 7 die 6 verfehlt. Perl 6 wurde bereits zu Weihnachten 2015 veröffentlicht, trägt nun aber den Namen Raku und unterscheidet sich technisch deutlich von Perl 5, auf das Version 7 nun explizit abzielt vermeiden.
Unterdessen wird in Kürze Perl 5.36 erwartet, das derzeit als Release Candidate verfügbar ist und am 18. Mai erscheinen sollte.
Weitere Einzelheiten zu den Plänen des Board of Directors von Perl für die Zukunft der Programmierung und den Übergang zu Perl 7 finden Sie im Blogbeitrag.
(rm)
Zur Startseite
Add Comment