Dan Book (), der mehr als 70 Module in CPAN unterstützt, der Risiken durch die Umsetzung des . Es sei daran erinnert, dass im Perl 7-Branch standardmäßig der strict-Check aktiviert, use warnings eingeschaltet und die Werte mehrerer Parameter geändert werden sollen, die die Kompatibilität mit altem Code beeinflussen.
Es wird erwartet, dass diese Änderungen zu einer Inkompatibilität einer großen Anzahl von CPAN-Modulen in Perl 7 führen werden, was eine Anpassung jedes dieser Module erfordert — etwas, das innerhalb des vorgegebenen Jahres unrealistisch umzusetzen ist, insbesondere da nicht alle Autoren erreichbar bleiben. Zudem erlauben die Neuerungen in Perl 7 nicht die Verwendung von Modulen, die nicht nur für die jeweils neueste Version von Perl ausgelegt sind.
Darüber hinaus werden folgende mögliche Probleme erwähnt:
- Verwirrung bei Anfängern wegen der Inkompatibilität einiger Beispiele und Empfehlungen aus Leitfäden, die für Perl 5 geschrieben wurden.
- Die Auswirkungen auf die Entwicklung von Einzeilern wurden noch nicht untersucht. Perl wird nicht nur für die Erstellung großer Skripte, sondern auch für die Erstellung von Einzeilern und kurzen Skripten für die Bedürfnisse von Administratoren eingesetzt, bei denen der Einsatz des Strict-Modus überflüssig ist.
- Bei den Distributionen tritt das Problem auf, dass ausführbare Dateien gleichzeitig für die Ausführung von Perl 7 und Perl 5 bereitgestellt werden (ein Wiederholen der Geschichte mit Python 2 und 3 wird erwartet).
- Code, der für Perl 7 geschrieben wurde, ist nicht verpflichtet zu kennzeichnen, dass er nicht in Perl 5 funktionieren kann. Viele Entwickler werden die minimal unterstützte Version nicht angeben.
- Verschiedene Dienstprogramme und Module, die auf Perl 5 basieren, benötigen Anpassungen.
- Die Vorbereitung von Perl 7 wird aufgrund der Umverteilung von Ressourcen für eine gewisse Zeit die Entwicklung neuer Funktionen in Perl einfrieren.
- Es besteht das Risiko, dass aktive Entwickler des Perl-Interpreters, von Modulen, Werkzeugen und unterstützenden Paketen aufgrund der durch zusätzliche Belastungen ohne angemessene Motivation drohenden Überlastung aussteigen (nicht jeder ist der Notwendigkeit der Schaffung von Perl 7 einverstanden).
- Die Kultur in der Community und die Einstellung zur Stabilität von Perl wird sich grundlegend ändern.
- Die Autorität der Sprache wird durch die Kritik an der Kompatibilität von Perl 7 mit bestehendem Code, ohne etwas grundsätzlich Neues, untergraben.
Um negative Folgen abzumildern, hat Dan Book seinen Plan vorgeschlagen, der helfen soll, einen Kompatibilitätsbruch zu vermeiden. Es wird vorgeschlagen, den bisherigen Entwicklungsprozess beizubehalten und der nächsten Version die Nummer 7.0.0 anstelle von 5.34.0 zuzuweisen, in der die Unterstützung für die indirekte Aufrufnotation deaktiviert wird und einige neue Funktionen wie try/catch hinzugefügt werden. Änderungen wie 'use strict' und 'use warnings' sollen durch die explizite Angabe der Perl-Version im Code über die Pragmatik 'use v7' reguliert werden (strict ist bereits standardmäßig aktiviert für 'use v5.12' und neuere Versionen).
Standardmäßig wird empfohlen, im Interpreter eine Parametergruppe zu speichern, die sich nicht von Perl 5 unterscheidet, mit Ausnahme des regulären Verfahrens zur Bereinigung veralteter Syntax, die bereits zuvor verwendet wurde. Die Unterstützung für alte Funktionen und veraltete Syntax kann weiterhin gemäß den bestehenden Regeln für die Umstellung von Funktionen auf veraltet eingestellt werden. Es wird empfohlen, durch die Pragmatik „use v7“ auf die Nutzung neuer Perl 7 Elements im Code hinzuweisen und den neuen Stil vom alten zu unterscheiden.
Quelle: opennet.ru
