Analisi dei rischi per l'iniziativa Perl 7

Dan Libro (Dan Libro), supportando più di 70 moduli in CPAN, effettuato l'analisi rischi durante l’attuazione della proposta Piano di implementazione di Perl 7. Ricordiamo che nel ramo Perl 7 intendono abilitare di default la modalità di controllo rigoroso “strict”, attivare “use warnings” e modificare il valore di una serie di parametri che influiscono sulla compatibilità con il vecchio codice.

Si prevede che la modifica interrompa un gran numero di moduli CPAN in Perl 7 e richieda modifiche a ciascun modulo, il che non è realistico da implementare entro l'anno target, soprattutto perché non tutti gli autori rimangono disponibili. Le modifiche in Perl 7 impediranno inoltre l'uso di moduli progettati per supportare qualcosa di più della semplice versione più recente di Perl.

Inoltre vengono menzionati i seguenti possibili problemi:

  • Confusione tra i principianti a causa di alcuni esempi e raccomandazioni tratti da manuali scritti per Perl 7 che non funzionano in Perl 5.
  • L'impatto sullo sviluppo delle battute non è stato studiato. Perl viene utilizzato attivamente non solo per scrivere script di grandi dimensioni, ma anche per creare one-liner e script brevi per le esigenze degli amministratori, in cui non è necessario l'uso della modalità rigorosa.
  • Le distribuzioni hanno problemi nel fornire simultaneamente file eseguibili per eseguire script Perl 7 e Perl 5 (si prevede che la storia si ripeta con Python 2 e 3).
  • Il codice scritto per Perl 7 non deve necessariamente specificare che non verrà eseguito in Perl 5; molti sviluppatori non specificheranno una versione minima supportata.
  • Varie utilità e moduli basati su Perl 5 richiederanno correzioni.
  • La preparazione di Perl 7, a causa della riallocazione delle risorse, congelerà per qualche tempo lo sviluppo di nuove funzionalità Perl.
  • Esiste il rischio di esaurimento e di abbandono degli sviluppatori attivi dell'interprete Perl, dei moduli, degli strumenti e dei pacchetti di accompagnamento a causa del grande carico di lavoro aggiuntivo senza un'adeguata motivazione (non tutti sono d'accordo con la necessità di creare Perl 7).
  • La cultura della comunità e l'atteggiamento verso la stabilità del Perl cambieranno radicalmente.
  • L'autorità del linguaggio sarà minata a causa della critica secondo cui Perl 7 è incompatibile con il codice esistente in assenza di qualcosa di fondamentalmente nuovo.

Per appianare le conseguenze negative, Dan Book ha proposto il suo piano, che eviterà un divario di compatibilità. Si propone di mantenere lo stesso processo di sviluppo e invece della 5.34.0, assegnare la prossima release numero 7.0.0, nella quale disabiliteremo il supporto per la notazione di chiamata indiretta degli oggetti e abiliteremo alcune nuove funzionalità come try/catch. Si propone di regolamentare modifiche come “use strict” e “use warnings” specificando esplicitamente la versione di Perl nel codice tramite il pragma “use v7” (strict è già abilitato di default per “use v5.12” e versioni più recenti ).

Per impostazione predefinita, si raccomanda che l'interprete mantenga una serie di parametri che non differiscono da Perl 5, ad eccezione del processo standard per ripulire la sintassi obsoleta utilizzata in precedenza. Il supporto per le funzionalità precedenti e la sintassi deprecata può continuare a essere interrotto in conformità con le regole di deprecazione esistenti. Si propone di segnalare l'uso di nuovi elementi Perl 7 nel codice e di separare i nuovi e vecchi stili utilizzando il pragma “use v7”.

Fonte: opennet.ru

Aggiungi un commento