Dan Book (), che supporta più di 70 moduli in CPAN, dei rischi legati all'attuazione del . Ricordiamo che nella versione Perl 7 si prevede di includere di default la modalità di verifica rigorosa "strict", attivare "use warnings" e modificare il valore di diversi parametri che influiscono sulla compatibilità con il codice obsoleto.
Ci si aspetta che questa modifica porti a numerosi moduli di CPAN non funzionanti in Perl 7 e richieda modifiche a ciascun modulo, cosa che è irrealistica da realizzare nell'arco dell'anno previsto, soprattutto considerando che non tutti gli autori rimangono disponibili. Le novità di Perl 7 non consentiranno inoltre l'uso di moduli progettati per supportare solo l'ultima versione di Perl.
Inoltre, vengono menzionati alcuni possibili problemi:
- Confusione tra i principianti a causa della non funzionalità in Perl 7 di alcuni esempi e raccomandazioni dai manuali scritti per Perl 5.
- Non è stata testata l'influenza sullo sviluppo di one-liner. Perl è ampiamente utilizzato non solo per la scrittura di script di grandi dimensioni, ma anche per la creazione di one-liner e brevi script per le esigenze degli amministratori, dove l'uso della modalità strict è eccessivo.
- Le distribuzioni hanno un problema nella fornitura simultanea di eseguibili per l'esecuzione di script Perl 7 e Perl 5 (si prevede una ripetizione della storia con Python 2 e 3).
- Il codice scritto per Perl 7 non è tenuto a sottolineare che non funzionerà in Perl 5; molti sviluppatori non indicheranno la versione minima supportata.
- Diverse utility e moduli legati a Perl 5 richiederanno modifiche.
- La preparazione di Perl 7, a causa della riallocazione delle risorse, congelerà lo sviluppo di nuove funzionalità di Perl per un certo periodo.
- C'è il rischio di burnout e di abbandono da parte degli sviluppatori attivi dell'interprete Perl, dei moduli, degli strumenti e dei pacchetti di supporto a causa dell'aumento del carico di lavoro senza adeguata motivazione (non tutti sono d'accordo sulla necessità di creare Perl 7).
- Cambia fondamentalmente la cultura nella comunità e l'atteggiamento verso la stabilità di Perl.
- L'autorità del linguaggio sarà danneggiata a causa delle critiche sulla non compatibilità di Perl 7 con il codice esistente in assenza di qualcosa di radicalmente nuovo.
Per mitigare le conseguenze negative, Dan Book ha proposto un piano che permetterà di evitare una rottura della compatibilità. Si propone di mantenere il processo di sviluppo precedente e di assegnare al prossimo rilascio il numero 7.0.0 invece di 5.34.0, disabilitando il supporto per la notazione indiretta nella chiamata degli oggetti e includendo alcune nuove funzionalità come try/catch. Modifiche come 'use strict' e 'use warnings' sono proposte per essere regolate specificando esplicitamente la versione di Perl nel codice tramite la pragma 'use v7' (strict è già attivato per default per 'use v5.12' e versioni successive).
Di default, si consiglia di mantenere nel gestore un set di parametri identico a Perl 5, eccetto per il processo standard di rimozione della sintassi obsoleta utilizzata in precedenza. Il supporto per le vecchie funzionalità e la sintassi obsoleta può essere interrotto, come in passato, secondo le attuali regole per la transizione delle funzionalità a obsoleto. Si suggerisce di segnalare l'uso nel codice dei nuovi elementi di Perl 7, e per distinguere il nuovo dallo stile vecchio, mediante la pragma «use v7».
Fonte: opennet.ru
