È stato annunciato Perl 7

Alla conferenza virtuale degli sviluppatori del linguaggio Perl che si tiene oggi è stato annunciato il progetto Perl 7, che continuerà dolcemente lo sviluppo della serie Perl 5 senza apportare cambiamenti radicali. Perl 7 sarà simile al rilascio Perl 5.32.0, ad eccezione di diverse impostazioni predefinite, meglio adattate 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 cambiamento significativo del numero di versione fungerà da separatore nel passaggio a un nuovo modello di espansione delle funzionalità del linguaggio Perl senza sostanziali violazioni della compatibilità.
Si prevede che la creazione di Perl 7 aiuterà ad attrarre nuovi sviluppatori verso l'uso di Perl e a facilitare il processo di aggiunta nel linguaggio di significative nuove funzionalità, mantenendo nel contempo la compatibilità con il codice esistente. Il numero 7 è stato scelto poiché Perl 6 è stato utilizzato nello sviluppo del linguaggio, che ora è in fase di sviluppo è sotto un nome separato, Raku. Il primo rilascio di Perl 7 è atteso per l'anno prossimo. La serie Perl 5.32 sarà l'ultima della serie Perl 5 e si prevede di supportarla per un periodo tra i 5 e i 10 anni.

La modifica più evidente in Perl 7 sarà l'inclusione predefinita della modalità "" (ad esempio, blocca il tentativo di specificare una stringa quando è previsto un valore intero come argomento) e protezione contro", che implica un rigoroso controllo della dichiarazione delle variabili, dell'uso dei puntatori simbolici e dell'assegnazione delle subroutine. L'uso di "use strict" è considerato buona norma ed è adottato dalla maggior parte degli sviluppatori. Analogamente, si prevede di attivare di default il trattamento degli avvisi ("use warnings«).

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

I candidati per la disattivazione predefinita in Perl 7 sono:

  • La notazione indiretta delle chiamate agli oggetti ("niente caratteristica qw(indiretta)«) — un modo obsoleto di chiamare oggetti, in cui invece di «->» si usa uno spazio («method $object @param» invece di «$object->$method(@param)»). Ad esempio, invece di «my $cgi = new CGI» si dovrà sempre usare «my $cgi = CGI->new».
  • Descrittori di file nudi senza dichiarazione di variabili («niente bareword::filehandle«) — l'uso di costrutti come «open FH, $file» porterà a un errore, si deve utilizzare «open my $fh, $file». Questa modifica non influenzerà i descrittori di file standard STDIN, STDOUT, STDERR, ARGV, ARGVOUT e DATA.
  • Array e hash multidimensionali fittizi in stile Perl 4 («niente multidimensionale«).
    Ad esempio, l'indicazione «$hash{1, 2}» porterà a un errore, si deve usare un array intermedio, come «$hash{join($;, 1, 2)}».
  • Dichiarazione di prototipi in stile Perl 4 (si deve utilizzare «use :prototype()»).

Nei piani più remoti, si prevede di includere supporto Unicode di default, il che solleverà gli sviluppatori dall'indicare «use utf8» nel codice. Per moduli e script in cui si verificheranno problemi con le nuove impostazioni predefinite, sarà possibile ripristinare il comportamento di Perl 5 aggiungendo la riga «use compat::perl5» nel codice. Alcune impostazioni saranno conservate e potranno essere modificate singolarmente.

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