Risikobewertung bei der Umsetzung der Perl-7-Initiative

(übersetzter Text in de)Dan Book), der über 70 Module in CPAN unterstützt, führt eine Analyse der Risiken bei der Umsetzung des vorgeschlagenen Einführungsplans für Perl 7. Es sei daran erinnert, dass in der Perl 7-Branch geplant ist, standardmäßig den Modus der strengen Überprüfung «strict» einzuführen, «use warnings» zu aktivieren und die Werte einiger Parameter zu ändern, die die Kompatibilität mit älterem Code beeinflussen.

Es wird erwartet, dass diese Änderung dazu führen wird, dass viele CPAN-Module in Perl 7 nicht mehr funktionieren, was Änderungen an jedem solchen Modul erfordert, was in dem vorgesehenen Jahr unrealistisch umzusetzen ist, insbesondere da nicht alle Autoren weiterhin verfügbar sind. Die Neuerungen in Perl 7 werden auch die Verwendung von Modulen ausschließen, die für die Unterstützung nicht nur der neuesten Perl-Version ausgelegt sind.

Außerdem werden mögliche Probleme erwähnt:

  • Verwirrung bei Anfängern aufgrund der Nichtfunktionalität einiger Beispiele und Empfehlungen aus Handbüchern, die für Perl 5 geschrieben wurden, in Perl 7.
  • Der Einfluss auf die Entwicklung von Einzeilern ist nicht untersucht. Perl wird nicht nur für das Schreiben großer Skripte, sondern auch für die Erstellung von Einzeilern und kurzen Skripten für die Bedürfnisse von Administratoren aktiv genutzt, in denen die Verwendung des Modus strict überflüssig ist.
  • Distributionen haben das Problem der gleichzeitigen Bereitstellung von ausführbaren Dateien zum Ausführen von Perl 7- und Perl 5-Skripten (eine Wiederholung der Geschichte mit Python 2 und 3 wird erwartet).
  • Code, der für Perl 7 geschrieben wurde, ist nicht verpflichtet, besonders darauf hinzuweisen, dass er in Perl 5 nicht funktionieren kann; viele Entwickler werden keine minimal unterstützte Version angeben.
  • Verschiedene Dienstprogramme und Module, die auf Perl 5 basieren, erfordern Korrekturen.
  • Die Vorbereitung von Perl 7 wird aufgrund der Umverteilung von Ressourcen vorübergehend die Entwicklung neuer Funktionen von Perl einfrieren.
  • Es besteht das Risiko der Überforderung und des Abgangs aktiver Entwickler des Perl-Interpreters, von Modulen, Werkzeugen und unterstützenden Paketen aufgrundder Beschränkung einer großen zusätzlichen Arbeitslast ohne angemessene Motivation (nicht alle sind sich der Notwendigkeit der Erstellung von Perl 7 einig).
  • Die Kultur in der Community und die Haltung zur Stabilität von Perl wird sich grundlegend ändern.
  • Das Ansehen der Sprache wird durch die Kritik an der Kompatibilität von Perl 7 mit bestehendem Code und dem Fehlen von etwas grundsätzlich Neuem untergraben.

Um die negativen Auswirkungen zu verringern, schlug Dan Book seinen Plan vor, der einen Abbruch der Kompatibilität vermeiden soll. Es wird vorgeschlagen, den bisherigen Entwicklungsprozess beizubehalten und der nächsten Version die Nummer 7.0.0 zuzuweisen, in der die Unterstützung der indirekten Objektaufrufsnotierung deaktiviert und einige neue Funktionen wie try/catch aktiviert werden. Änderungen wie „use strict“ und „use warnings“ sollen durch eine explizite Angabe der Perl-Version im Code über das Pragma „use v7“ geregelt werden (strict wird standardmäßig für „use v5.12“ und neuere Versionen aktiviert).

Im Interpreter wird standardmäßig empfohlen, das Parameter-Set beizubehalten, das sich nicht von Perl 5 unterscheidet, mit Ausnahme des regulären Prozesses zur Bereinigung veralteter Syntax, der auch zuvor angewendet wurde. Die Unterstützung für alte Funktionen und veraltete Syntax kann wie bisher gemäß den bestehenden Regeln zur Überführung von Funktionalität in den veralteten Bereich eingestellt werden. Es wird vorgeschlagen, die Verwendung neuer Perl 7-Elemente im Code und die Unterscheidung zwischen neuem und altem Stil mittels des Pragmas „use v7“ zu signalisieren.

Quelle: opennet.ru

60GB SSD 8Gb DDR4