Napoved na Perl 7

Na današnji virtualni konferenci razvijalcev jezika Perl je bila napovedana projekta Perl 7, ki bo nemoteno nadaljeval razvoj različice Perl 5 brez radikalnih sprememb. Perl 7 bo podoben izdaji Perl 5.32.0, razen z drugimi privzetimi nastavitvami, ki bolje ustrezajo sodobnim praksam razvoja. Vse ostalo bo ostalo enako kot Perl 5 in obdržalo združljivost s prej razvitimi aplikacijami.

Znatna sprememba številke različice bo služila kot nekakšna meja pri prehodu na nov model povečanja funkcionalnosti jezika Perl brez občutnega kršenja povratne združljivosti.
Predvideva se, da bo ustvarjanje Perl 7 pomagalo privabiti nove razvijalce h koriščenju Perl in omogočilo postopek dodajanja pomembnih novih funkcij v jezik, ob tem pa ohranilo združljivost s kodo obstoječih projektov. Številka 7 je izbrana, ker je bila Perl 6 uporabljena pri razvoju jezika, ki zdaj razvija deluje pod drugim imenom Raku. Prva izdaja Perl 7 je predvidena za prihodnje leto. Več različica Perl 5.32 bo zadnja v seriji Perl 5 in jo nameravajo podpirati od 5 do 10 let.

Najbolj opazna sprememba v Perl 7 bo privzeto vključitev načina "strict", ki vključuje strogo preverjanje deklaracij spremenljivk, uporabe simbolnih pokazateljev in dodeljevanja podprogramov. Uporaba "use strict" je dobro sprejeta in jo uporablja večina razvijalcev. Podobno nameravajo privzeto vključiti obravnavo opozoril ("use warnings«).

V Perl 7 prav tako načrtujejo stabilizacijo in privzeto vključitev nekaterih že obstoječih eksperimentalnih funkcionalnosti, kot so podpis funkcij ("use feature 'signatures'"), ki omogočajo pri definiranju funkcije določitev vhodnih argumentov in avtomatizacijo preverjanja njihovega števila (možno bo napisati "sub foo ($left, $right) {" namesto "sub foo { my($left, $right) = @_; "). Prav tako načrtujejo privzeto vključitev podpore za operator "isa" za preverjanje, ali je objekt primer razreda ali razreda, ki iz njega izhaja ("if( $obj isa Package::Name )", ter operacije postfixnega razderevanja (postderef) "$sref->*" namesto "{ $sref }", "$aref->@*" namesto "@{ $aref }" in "$href->%{ … }" namesto "%$href{ … }".

Kandidati za onemogočanje privzeto v Perl 7 so:

  • Neposredna notacija poziva objekata («no feature qw(indirect)«) — zastarjeli način pozivanja objekata, pri čemu se umjesto «->» koristi razmak («method $object @param» umjesto «$object->$method(@param)»). Na primjer, umjesto «my $cgi = new CGI» uvijek će se koristiti «my $cgi = CGI->new».
  • Goli deskriptori datoteka bez deklariranja varijabli («no bareword::filehandle«) — korištenje konstrukcija poput «open FH, $file» izazvat će grešku, treba koristiti «open my $fh, $file». Promjena neće utjecati na standardne deskriptore datoteka STDIN, STDOUT, STDERR, ARGV, ARGVOUT i DATA.
  • Lažni višedimenzionalni nizovi i heševi u stilu Perl 4 («no multidimensional«).
    Na primjer, especificiranje «$hash{1, 2}» izazvat će grešku, treba koristiti međuzapisni niz, primjerice «$hash{join($;, 1, 2)}».
  • Deklariranje prototipova u stilu Perl 4 (treba koristiti «use :prototype()»).

U daljnjim planovima prema zadanim postavkama planira se uključiti podršku za Unicode, što će osvoboditi programere od navođenja «use utf8» u kodu. Za module i skripte u kojima će doći do problema s novim zadanim postavkama, predviđena je mogućnost vraćanja ponašanja Perl 5 dodavanjem oznake «use compat::perl5» u kod. Pojedine postavke također će se čuvati i moguće ih je mijenjati pojedinačno.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster