Riskanalys för Perl 7-initiativet

Dan bok (Dan bok), som stöder mer än 70 moduler i CPAN, genomförde analysen risker vid genomförandet av det föreslagna Perl 7 implementeringsplan. Låt oss komma ihåg att i Perl 7-grenen avser de att aktivera det strikta kontrollläget "strikt" som standard, aktivera "använd varningar" och ändra värdet på ett antal parametrar som påverkar kompatibiliteten med gammal kod.

Förändringen förväntas bryta ett stort antal CPAN-moduler i Perl 7 och kräva ändringar av varje modul, vilket är orealistiskt att implementera inom målåret, särskilt eftersom inte alla författare är tillgängliga. Ändringarna i Perl 7 kommer också att förhindra användningen av moduler som är designade för att stödja mer än bara den senaste versionen av Perl.

Dessutom nämns följande möjliga problem:

  • Förvirring bland nybörjare på grund av att några exempel och rekommendationer från manualer skrivna för Perl 7 inte fungerar i Perl 5.
  • Effekten på utvecklingen av one-liners har inte studerats. Perl används aktivt inte bara för att skriva stora skript, utan också för att skapa one-liners och korta skript för administratörers behov, där användningen av strikt läge är onödigt.
  • Distributioner har problem med att samtidigt leverera körbara filer för att köra Perl 7- och Perl 5-skript (berättelsen förväntas upprepas med Python 2 och 3).
  • Kod skriven för Perl 7 behöver inte specifikt notera att den inte kommer att köras i Perl 5; många utvecklare kommer inte att ange en minsta version som stöds.
  • Olika verktyg och moduler baserade på Perl 5 kommer att kräva korrigeringar.
  • Förberedelserna av Perl 7, på grund av omfördelningen av resurser, kommer att frysa utvecklingen av nya Perl-funktioner under en tid.
  • Det finns en risk för utbrändhet och avgång av aktiva utvecklare av Perl-tolken, moduler, verktyg och medföljande paket på grund av den stora extra arbetsbelastningen utan ordentlig motivation (alla håller inte med om behovet av att skapa Perl 7).
  • Kulturen i samhället och attityden till stabiliteten i Perl kommer att förändras i grunden.
  • Språkets auktoritet kommer att undermineras på grund av kritiken att Perl 7 är oförenlig med befintlig kod i avsaknad av något fundamentalt nytt.

För att jämna ut de negativa konsekvenserna föreslog Dan Book sin plan, som kommer att undvika en kompatibilitetslucka. Det föreslås att bibehålla samma utvecklingsprocess och istället för 5.34.0, tilldela nästa versionsnummer 7.0.0, där vi kommer att inaktivera stöd för indirekt objektanropsbeteckning och aktivera några nya funktioner som try/catch. Ändringar som "använd strikt" och "använd varningar" föreslås regleras genom att uttryckligen specificera Perl-versionen i koden genom pragman "använd v7" (strikt är redan aktiverat som standard för "använd v5.12" och nyare utgåvor ).

Som standard rekommenderas det att tolken behåller en uppsättning parametrar som inte skiljer sig från Perl 5, med undantag för standardprocessen för att rensa upp föråldrad syntax som användes tidigare. Stöd för äldre funktioner och utfasad syntax kan fortsätta att upphöra i enlighet med befintliga utfasningsregler. Det föreslås att signalera användningen av nya Perl 7-element i koden och att separera nya och gamla stilar med hjälp av "use v7"-pragman.

Källa: opennet.ru

Lägg en kommentar