Annunciata la versione Perl 7

Oggi, durante la conferenza virtuale per sviluppatori del linguaggio Perl, è stato annunciato il progetto Perl 7, che proseguirà senza soluzione di continuità lo sviluppo della serie Perl 5 senza apportare cambiamenti radicali. Perl 7 sarà analogo alla versione Perl 5.32.0, ad eccezione di alcune impostazioni predefinite diverse, meglio allineate alle pratiche moderne di sviluppo. In altri aspetti, Perl 7 rimarrà lo stesso Perl 5 e manterrà la compatibilità con le applicazioni precedentemente sviluppate.

Un significativo cambio di numero di versione rappresenterà una sorta di confine per il passaggio a un nuovo modello di espansione delle funzionalità del linguaggio Perl senza violare tangibilmente la retrocompatibilità.
Si prevede che la creazione di Perl 7 aiuterà ad attrarre nuovi sviluppatori verso Perl e a facilitare l'inserimento nel linguaggio di significative nuove funzionalità, mantenendo al contempo la compatibilità con il codice sorgente dei progetti esistenti. Il numero 7 è stato scelto poiché Perl 6 era stato utilizzato nella costruzione del linguaggio, che ora si sviluppa ha un nome separato, Raku. Il primo rilascio di Perl 7 è atteso per il prossimo anno. La serie Perl 5.32 sarà l'ultima della linea Perl 5 e si prevede che sarà supportata per un periodo di 5-10 anni.

La modifica più significativa in Perl 7 sarà l'inclusione per impostazione predefinita della modalità «strict«, che prevede un controllo rigoroso della dichiarazione delle variabili, dell'uso dei puntatori simbolici e dell'assegnazione delle funzioni. L'uso di «use strict» è considerato una buona pratica e adottato dalla maggior parte degli sviluppatori. In modo simile, si prevede di attivare per impostazione predefinita la gestione dei warning («use warnings«).

In Perl 7 si prevede anche di stabilizzare e includere per impostazione predefinita alcune funzionalità sperimentali già esistenti, come le firme delle funzioni («use feature ‘signatures'»), che consentono di definire gli argomenti in ingresso e automatizzare il controllo del loro numero (si potrà scrivere «sub foo ($left, $right) {» invece di «sub foo { my($left, $right) = @_;»). Si prevede di includere per impostazione predefinita anche il supporto per l'operatore «isa» per verificare se un oggetto è un'istanza della classe specificata o di una classe derivata («if( $obj isa Package::Name )», così come le operazioni di dereferenziazione postfissa (postderef) «$sref->$*» invece di «${ $sref }», «$aref->@*» invece di «@{ $aref }» e «$href->%{ … }» invece di «%$href{ … }».

I candidati per la disattivazione per impostazione predefinita in Perl 7 sono:

  • Notazione indiretta per chiamare oggetti («no feature qw(indirect)«) — un metodo obsoleto per chiamare oggetti, in cui invece di «->» si utilizza uno spazio («method $object @param» invece di «$object->$method(@param)»). Ad esempio, invece di «my $cgi = new CGI» si dovrà sempre utilizzare «my $cgi = CGI->new».
  • Descrittori di file nudi senza dichiarazione di variabili («no bareword::filehandle«) — l'uso di costruzioni come «open FH, $file» porterà a un errore; si deve utilizzare «open my $fh, $file». La modifica non influirà sui descrittori di file standard STDIN, STDOUT, STDERR, ARGV, ARGVOUT e DATA.
  • Array e hash multidimensionali fittizi in stile Perl 4 («no multidimensional«).
    Ad esempio, specificare «$hash{1, 2}» porterà a un errore; si deve utilizzare un array intermedio, ad esempio «$hash{join($;, 1, 2)}».
  • Dichiarazione di prototipi in stile Perl 4 (si deve utilizzare «use :prototype()»).

Nei piani futuri, per default, si prevede l'inclusione del supporto Unicode, il che libererà gli sviluppatori dall'obbligo di specificare «use utf8» nel codice. Per i moduli e gli script che riscontrano problemi con le nuove impostazioni predefinite, è prevista la possibilità di ripristinare il comportamento di Perl 5 aggiungendo nel codice la riga «use compat::perl5». Alcune impostazioni rimarranno disponibili e potranno essere modificate singolarmente.

Fonte: opennet.ru

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