Analisi dei rischi nella realizzazione dell'iniziativa Perl 7

(Dan BookDan Book), che supporta oltre 70 moduli in CPAN, ha condotto un'analisi dei rischi associati all'implementazione del piano di rilascio di Perl 7.Ricordiamo che nella serie di Perl 7 si prevede di includere per impostazione predefinita la modalità di controllo rigoroso "strict", attivare "use warnings" e modificare il valore di variabili che influenzano la compatibilità con il codice legacy.

Si prevede che tale cambiamento porterà a malfunzionamenti di un gran numero di moduli di CPAN in Perl 7 e richiederà modifiche a ogni modulo, il che è irrealistico da realizzare nel corso dell'anno previsto, soprattutto considerando che non tutti gli autori rimangono disponibili. Inoltre, le novità di Perl 7 non permetteranno l'uso di moduli progettati per supportare solo l'ultima versione di Perl.

Inoltre, vengono menzionati possibili problemi:

  • Confusione tra i principianti a causa del malfunzionamento in Perl 7 di alcuni esempi e raccomandazioni delle guide scritte per Perl 5.
  • Non è stato esaminato l'impatto sullo sviluppo di one-liners. Perl è utilizzato attivamente non solo per scrivere grandi script, ma anche per creare one-liners e brevi script per le esigenze degli amministratori, dove l'uso della modalità strict è eccessivo.
  • I pacchetti presenteranno il problema della fornitura simultanea di file eseguibili per eseguire script Perl 7 e Perl 5 (ci si aspetta una ripetizione della storia con Python 2 e 3).
  • Il codice scritto per Perl 7 non deve segnare esplicitamente che non potrà funzionare in Perl 5; molti sviluppatori non specificheranno la versione minima supportata.
  • Vari strumenti e moduli legati a Perl 5 richiederanno modifiche.
  • La preparazione di Perl 7 a causa della redistribuzione delle risorse congelerà per un certo periodo lo sviluppo di nuove funzionalità in Perl.
  • Esiste il rischio di burnout e di uscita di sviluppatori attivi dell'interprete Perl, moduli, strumenti e pacchetti di supporto a causa di un carico aggiuntivo significativo senza adeguate motivazioni (non tutti sono d'accordo con la necessità di creare Perl 7).
  • Cambia fondamentalmente la cultura nella comunità e l'atteggiamento verso la stabilità di Perl.
  • L'autorità del linguaggio sarà minata a causa delle critiche riguardanti la mancanza di compatibilità di Perl 7 con il codice esistente in assenza di qualcosa di sostanzialmente nuovo.

Per attenuare le conseguenze negative, Dan Book ha proposto un piano che consentirà di evitare rotture nella compatibilità. Si propone di mantenere il precedente processo di sviluppo e di assegnare al prossimo rilascio il numero 7.0.0 anziché 5.34.0, disabilitando il supporto alla notazione indiretta per la chiamata agli oggetti e introducendo alcune nuove funzionalità, come il try/catch. Modifiche come «use strict» e «use warnings» si propongono di essere gestite esplicitamente indicando la versione di Perl nel codice tramite il pragma «use v7» (strict è già abilitato di default per «use v5.12» e per le versioni successive).

Di default, nel interprete si raccomanda di mantenere un insieme di parametri che non differisce da Perl 5, fatta eccezione per il processo standard di pulizia della sintassi obsoleta, già in uso in precedenza. Il supporto per le vecchie funzionalità e la sintassi obsoleta può essere interrotto come in passato, in conformità con le attuali regole di transizione delle funzionalità a obsoleto. Si propone di segnalare l'uso nel codice dei nuovi elementi di Perl 7 e di distinguere tra il nuovo e il vecchio stile attraverso il pragma «use v7».

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster