Risicoanalyse voor het Perl 7-initiatief

Dan Boek (Dan boek), ondersteunt meer dan 70 modules in CPAN, de analyse uitgevoerd risico's bij de uitvoering van het voorgestelde Perl 7 implementatieplan. Laten we niet vergeten dat ze in de Perl 7-tak van plan zijn de strikte controlemodus standaard ‘strikt’ in te schakelen, ‘gebruikswaarschuwingen’ te activeren en de waarde van een aantal parameters te wijzigen die de compatibiliteit met oude code beïnvloeden.

Verwacht wordt dat de wijziging een groot aantal CPAN-modules in Perl 7 kapot zal maken en wijzigingen in elke module zal vereisen, wat onrealistisch is om binnen het beoogde jaar te implementeren, vooral omdat niet alle auteurs beschikbaar blijven. De veranderingen in Perl 7 zullen ook het gebruik van modules voorkomen die zijn ontworpen om meer te ondersteunen dan alleen de nieuwste versie van Perl.

Daarnaast worden de volgende mogelijke problemen genoemd:

  • Verwarring onder beginners vanwege enkele voorbeelden en aanbevelingen uit handleidingen geschreven voor Perl 7 die niet werken in Perl 5.
  • De impact op de ontwikkeling van oneliners is niet onderzocht. Perl wordt niet alleen actief gebruikt voor het schrijven van grote scripts, maar ook voor het maken van oneliners en korte scripts voor de behoeften van beheerders, waarbij het gebruik van de strikte modus niet nodig is.
  • Distributies hebben een probleem met het gelijktijdig leveren van uitvoerbare bestanden om Perl 7- en Perl 5-scripts uit te voeren (het verhaal zal zich naar verwachting herhalen met Python 2 en 3).
  • Code geschreven voor Perl 7 hoeft niet specifiek te vermelden dat deze niet zal werken in Perl 5; veel ontwikkelaars zullen geen minimaal ondersteunde versie specificeren.
  • Diverse hulpprogramma's en modules gebaseerd op Perl 5 vereisen correcties.
  • De voorbereiding van Perl 7 zal, als gevolg van de herverdeling van bronnen, de ontwikkeling van nieuwe Perl-functies enige tijd bevriezen.
  • Er bestaat een risico op burn-out en vertrek van actieve ontwikkelaars van de Perl-interpreter, modules, tools en bijbehorende pakketten vanwege de grote extra werklast zonder de juiste motivatie (niet iedereen is het eens met de noodzaak om Perl 7 te maken).
  • De cultuur in de gemeenschap en de houding ten opzichte van de stabiliteit van Perl zullen fundamenteel veranderen.
  • De autoriteit van de taal zal worden ondermijnd als gevolg van de kritiek dat Perl 7 onverenigbaar is met bestaande code bij gebrek aan iets fundamenteel nieuws.

Om de negatieve gevolgen glad te strijken, stelde Dan Book zijn plan voor, dat een compatibiliteitskloof zal vermijden. Er wordt voorgesteld om hetzelfde ontwikkelingsproces te behouden en in plaats van 5.34.0 het volgende releasenummer 7.0.0 toe te wijzen, waarin we de ondersteuning voor de aanroep van indirecte objecten zullen uitschakelen en enkele nieuwe functies zullen inschakelen, zoals try/catch. Er wordt voorgesteld om wijzigingen zoals “gebruik strikt” en “gebruikswaarschuwingen” te reguleren door de Perl-versie expliciet in de code te specificeren via het “gebruik v7” -pragma (strikt is standaard al ingeschakeld voor “gebruik v5.12” en nieuwere releases ).

Standaard wordt aanbevolen dat de interpreter een set parameters behoudt die niet verschillen van Perl 5, met uitzondering van het standaardproces voor het opschonen van verouderde syntaxis dat eerder werd gebruikt. Ondersteuning voor oudere functies en verouderde syntaxis kan worden stopgezet in overeenstemming met bestaande beëindigingsregels. Er wordt voorgesteld om het gebruik van nieuwe Perl 7-elementen in de code aan te geven en nieuwe en oude stijlen te scheiden met behulp van het “use v7”-pragma.

Bron: opennet.ru

Voeg een reactie