Perl 7 napovedan

Na današnji virtualni konferenci razvijalcev jezika Perl napovedano projekt Perl 7, ki bo gladko nadaljeval razvoj veje Perl 5 brez radikalnih sprememb. Perl 7 bo podobna izdaja Perl 5.32.0, razen drugih privzetih nastavitev, ki so bolj skladne s sodobnimi razvojnimi praksami. V nasprotnem primeru bo Perl 7 ostal enak kot Perl 5 in bo ostal združljiv s predhodno razvitimi aplikacijami.

Pomembna sprememba številke različice bo delovala kot neke vrste ločilo za prehod na nov model za povečanje funkcionalnosti jezika Perl brez opazne kršitve združljivosti nazaj.
Pričakuje se, da bo izdaja Perla 7 pomagala k Perlu pritegniti nove razvijalce in poenostaviti proces dodajanja pomembnih novih funkcij v jezik, hkrati pa ohraniti združljivost z bazo kode obstoječih projektov. Številka 7 je bila izbrana, ker je bil Perl 6 uporabljen za razvoj jezika, ki je zdaj se razvija pod ločenim imenom Raku. Prvo izdajo Perla 7 pričakujemo naslednje leto. Veja Perl 5.32 bo zadnja v seriji Perl 5 in bo po načrtih podprta 5 do 10 let.

Najbolj opazna sprememba v Perlu 7 je vključitev "strogo“, kar pomeni strogo preverjanje deklaracij spremenljivk, uporabo simbolnih kazalcev in dodelitev podprogramov. Uporaba "use strict" je dobra oblika in jo uporablja večina razvijalcev. Podobno nameravajo privzeto omogočiti obdelavo opozoril ("uporabite opozorila").

Perl 7 prav tako upa, da bo stabiliziral in privzeto omogočil nekatere že obstoječe eksperimentalne funkcije, kot je npr funkcijski podpisi (»uporabi funkcijo 'podpisi'«), ki omogoča, da pri definiranju funkcije določite vhodne argumente in avtomatizirate preverjanje njihovega števila (lahko napišete »sub foo ($levo, $desno) {« namesto »sub foo { moj($levo, $desno) = @_;"). Načrtujejo, da bodo privzeto vključili podporo za operator "isa" za preverjanje, ali je predmet primerek določenega razreda ali razred, izpeljan iz njega ("if( $obj isa Package::Name)", kot tudi postfiksno dereferenciranje operacije (postderef) “$ sref->$*" namesto "${ $sref }", "$aref->@*" namesto "@{ $aref }" in "$href->%{ ... }" namesto "%$href{ ... } "

Kandidati za privzeto onemogočenje v Perlu 7 so:

  • Notacija klica posrednega objekta ("brez funkcije qw (posredno)") je podedovan način klicanja predmetov z uporabo presledka namesto "->" ("method $object @param" namesto "$object->$method(@param)"). Na primer, namesto "my $cgi = new CGI" bi vedno uporabili "my $cgi = CGI->new".
  • Goli deskriptorji datotek brez deklaracij spremenljivk ("brez bareword::filehandle") - uporaba konstrukcij, kot je "odpri FH, $file", bo povzročila napako, morate uporabiti "open my $fh, $file". Sprememba ne bo vplivala na standardne deskriptorje datotek STDIN, STDOUT, STDERR, ARGV, ARGVOUT in DATA.
  • Navidezna večdimenzionalna polja in zgoščene vrednosti v slogu Perl 4 ("brez večdimenzionalnosti").
    Če na primer navedete »$hash{1, 2}«, bo prišlo do napake; uporabiti morate vmesno matriko, na primer »$hash{join($;, 1, 2)}«.

  • Deklariranje prototipov v slogu Perl 4 (uporabiti morate "use :prototype()").

V bolj oddaljenih načrtih pričakujejo, da bodo privzeto omogočili podporo za Unicode, kar bo razvijalcem prihranilo določitev "uporabe utf8" v kodi. Za module in skripte, ki imajo težave z novimi privzetimi nastavitvami, se je mogoče vrniti na vedenje Perl 5 tako, da kodi dodate vrstico "use compat::perl5". Individualne nastavitve bodo tudi shranjene in jih je mogoče spremeniti posamično.

Vir: opennet.ru

Dodaj komentar