Risikoanalyse for Perl 7-initiativet

Dan bog (Dan bog), der understøtter mere end 70 moduler i CPAN, udførte analysen risici ved implementering af det foreslåede Perl 7 implementeringsplan. Lad os huske på, at de i Perl 7-grenen har til hensigt at aktivere den strenge kontroltilstand "streng" som standard, aktivere "brug advarsler" og ændre værdien af ​​en række parametre, der påvirker kompatibiliteten med gammel kode.

Ændringen forventes at bryde et stort antal CPAN-moduler i Perl 7 og kræve ændringer af hvert modul, hvilket er urealistisk at implementere inden for målåret, især da ikke alle forfattere forbliver tilgængelige. Ændringerne i Perl 7 vil også forhindre brugen af ​​moduler, der er designet til at understøtte mere end blot den nyeste version af Perl.

Derudover nævnes følgende mulige problemer:

  • Forvirring blandt begyndere på grund af nogle eksempler og anbefalinger fra manualer skrevet til Perl 7 virker ikke i Perl 5.
  • Indvirkningen på udviklingen af ​​one-liners er ikke undersøgt. Perl bruges aktivt ikke kun til at skrive store scripts, men også til at skabe one-liners og korte scripts til administratorers behov, hvor brugen af ​​streng tilstand er unødvendig.
  • Distributioner har et problem med samtidig at levere eksekverbare filer til at køre Perl 7 og Perl 5 scripts (historien forventes at gentages med Python 2 og 3).
  • Kode skrevet til Perl 7 behøver ikke specifikt at bemærke, at den ikke kører i Perl 5; mange udviklere vil ikke angive en minimumsunderstøttet version.
  • Forskellige hjælpeprogrammer og moduler baseret på Perl 5 vil kræve rettelser.
  • Forberedelsen af ​​Perl 7 vil på grund af omfordelingen af ​​ressourcer fastfryse udviklingen af ​​nye Perl-funktioner i nogen tid.
  • Der er risiko for udbrændthed og afgang af aktive udviklere af Perl-tolken, moduler, værktøjer og tilhørende pakker på grund af den store ekstra arbejdsbyrde uden ordentlig motivation (ikke alle er enige i behovet for at oprette Perl 7).
  • Kulturen i samfundet og holdningen til stabiliteten i Perl vil fundamentalt ændre sig.
  • Sprogets autoritet vil blive undermineret på grund af kritik af, at Perl 7 er uforenelig med eksisterende kode i mangel af noget fundamentalt nyt.

For at udjævne de negative konsekvenser foreslog Dan Book sin plan, som vil undgå et kompatibilitetsgab. Det foreslås at opretholde den samme udviklingsproces og i stedet for 5.34.0 tildele det næste udgivelsesnummer 7.0.0, hvor vi vil deaktivere understøttelse af indirekte objektkaldende notation og aktivere nogle nye funktioner såsom try/catch. Ændringer såsom "brug streng" og "brug advarsler" foreslås reguleret ved eksplicit at specificere Perl-versionen i koden gennem "brug v7"-pragmaen (streng er allerede aktiveret som standard for "brug v5.12" og nyere udgivelser ).

Som standard anbefales det, at fortolkeren beholder et sæt parametre, der ikke adskiller sig fra Perl 5, med undtagelse af standardprocessen til at rydde op i forældet syntaks, der blev brugt før. Understøttelse af ældre funktioner og forældet syntaks kan fortsætte med at blive afbrudt i overensstemmelse med eksisterende udfasningsregler. Det foreslås at signalere brugen af ​​nye Perl 7-elementer i koden og at adskille nye og gamle stilarter ved hjælp af "brug v7"-pragmaen.

Kilde: opennet.ru

Tilføj en kommentar