Risikoanalyse for Perl 7-initiativet

Dan bok (Dan bok), som støtter mer enn 70 moduler i CPAN, utførte analysen risiko ved implementering av det foreslåtte Perl 7 implementeringsplan. La oss huske at i Perl 7-grenen har de til hensikt å aktivere den strenge kontrollmodusen "streng" som standard, aktivere "bruk advarsler" og endre verdien av en rekke parametere som påvirker kompatibiliteten med gammel kode.

Endringen forventes å bryte et stort antall CPAN-moduler i Perl 7 og kreve endringer i hver modul, noe som er urealistisk å implementere innenfor målåret, spesielt siden ikke alle forfattere forblir tilgjengelige. Endringene i Perl 7 vil også forhindre bruk av moduler som er designet for å støtte mer enn bare den nyeste versjonen av Perl.

I tillegg er følgende mulige problemer nevnt:

  • Forvirring blant nybegynnere på grunn av at noen eksempler og anbefalinger fra håndbøker skrevet for Perl 7 ikke fungerer i Perl 5.
  • Effekten på utviklingen av one-liners er ikke studert. Perl brukes aktivt ikke bare for å skrive store skript, men også for å lage one-liners og korte skript for behovene til administratorer, der bruken av streng modus er unødvendig.
  • Distribusjoner har et problem med å levere kjørbare filer samtidig for å kjøre Perl 7- og Perl 5-skript (historien forventes å gjentas med Python 2 og 3).
  • Kode skrevet for Perl 7 trenger ikke spesifikt å merke seg at den ikke vil kjøre i Perl 5; mange utviklere vil ikke spesifisere en minimumsstøttet versjon.
  • Ulike verktøy og moduler basert på Perl 5 vil kreve korrigeringer.
  • Utarbeidelsen av Perl 7, på grunn av omfordelingen av ressurser, vil fryse utviklingen av nye Perl-funksjoner i noen tid.
  • Det er en risiko for utbrenthet og avgang av aktive utviklere av Perl-tolken, moduler, verktøy og tilhørende pakker på grunn av den store ekstra arbeidsbelastningen uten skikkelig motivasjon (ikke alle er enige i behovet for å lage Perl 7).
  • Kulturen i samfunnet og holdningen til stabiliteten til Perl vil endre seg fundamentalt.
  • Språkets autoritet vil bli undergravd på grunn av kritikk om at Perl 7 er uforenlig med eksisterende kode i fravær av noe fundamentalt nytt.

For å jevne ut de negative konsekvensene foreslo Dan Book sin plan, som vil unngå et kompatibilitetsgap. Det foreslås å opprettholde den samme utviklingsprosessen og i stedet for 5.34.0, tildele neste utgivelsesnummer 7.0.0, der vi vil deaktivere støtte for indirekte objektkallingsnotasjon og aktivere noen nye funksjoner som try/catch. Endringer som "bruk streng" og "bruk advarsler" foreslås regulert ved å eksplisitt spesifisere Perl-versjonen i koden gjennom "bruk v7"-pragmaen (streng er allerede aktivert som standard for "bruk v5.12" og nyere utgivelser ).

Som standard anbefales det at tolken beholder et sett med parametere som ikke skiller seg fra Perl 5, med unntak av standardprosessen for å rydde opp i foreldet syntaks som ble brukt før. Støtte for eldre funksjoner og avviklet syntaks kan fortsette å avvikles i samsvar med eksisterende avviklingsregler. Det foreslås å signalisere bruken av nye Perl 7-elementer i koden og å skille nye og gamle stiler ved å bruke "bruk v7"-pragmaen.

Kilde: opennet.ru

Legg til en kommentar