Perl 7 aangekondigd

Op de vandaag gehouden virtuele conferentie voor ontwikkelaars van de Perl-taal werd aangekondigd het Perl 7-project, dat de ontwikkeling van de Perl 5-tak naadloos zal voortzetten zonder ingrijpende wijzigingen. Perl 7 zal vergelijkbaar zijn met de release Perl 5.32.0, met uitzondering van andere standaardinstellingen die beter aansluiten bij de moderne ontwikkelingspraktijken. Verder blijft Perl 7 hetzelfde als Perl 5 en behoudt het de compatibiliteit met eerder ontwikkelde applicaties.

Een significante versienummersverandering zal fungeren als een soort scheiding voor de overgang naar een nieuw model voor het uitbreiden van de functionaliteit van de Perl-taal zonder merkbare schending van de achterwaartse compatibiliteit.
Het is de bedoeling dat de creatie van Perl 7 nieuwe ontwikkelaars zal aantrekken en het proces van het toevoegen van aanzienlijke nieuwe mogelijkheden aan de taal zal vergemakkelijken, terwijl de compatibiliteit met de codebasis van bestaande projecten behouden blijft. Het nummer 7 is gekozen omdat Perl 6 is gebruikt bij de ontwikkeling van de taal, die nu een vrij alternatief voor XenServer wordt ontwikkeld, waarin functies zijn teruggebracht die uit de gratis versie van XenServer zijn verwijderd. onder de aparte naam Raku valt. De eerste release van Perl 7 wordt volgend jaar verwacht. De Perl-tak 5.32 zal de laatste in de Perl 5-serie zijn en deze zal van 5 tot 10 jaar worden ondersteund.

De meest opvallende wijziging in Perl 7 zal de standaardinclusie van de "strict"-modus zijn, die een strikte controle van de variabele declaraties, het gebruik van symbolische pointers en de toewijzing van subprogramma's inhoudt. Het gebruik van "use strict" is een goede gewoonte en wordt door de meeste ontwikkelaars toegepast. Evenzo is er een plan om standaard ook de waarschuwingenverwerking "use warnings«).

In Perl 7 is het ook de bedoeling om standaard een aantal al bestaande experimentele mogelijkheden te stabiliseren en in te schakelen, zoals functiesignaturen ("use feature 'signatures'"), waardoor het mogelijk wordt om bij het definiëren van een functie de inkomende argumenten te specificeren en hun aantal automatisch te controleren (je kunt "sub foo (28$left, $right29 {" schrijven in plaats van "sub foo { my(28$left, $right29 = @_;" ). Ook is het de bedoeling om standaard ondersteuning voor de "isa"-operator in te schakelen om te controleren of een object een instantie is van de opgegeven klasse of een afgeleide klasse ("if( $obj isa Package::Name )", evenals postderef-operaties "28$sref->28*" in plaats van "28${ $sref }29", "28$aref->28*" in plaats van "28@{ $aref }29" en "28$href->28%{ … }29" in plaats van "28%$href{ … }29".

Kandidaten voor standaarduitschakeling in Perl 7 zijn:

  • Indirecte notatie voor het aanroepen van objecten ("geen functie qw(indirect)«) — verouderde manier om objecten aan te roepen, waarbij in plaats van «->» een spatie wordt gebruikt («method $object @param» in plaats van «$object->$method(@param)»). Bijvoorbeeld, in plaats van «my $cgi = new CGI» moet altijd «my $cgi = CGI->new» worden gebruikt.
  • Blote bestandsdescriptors zonder variabele declaraties («geen blote woord::filehandle«) — het gebruik van constructies zoals «open FH, $file» zal leiden tot een fout, het is nodig om «open my $fh, $file» te gebruiken. Deze wijziging zal de standaard bestandsdescriptors STDIN, STDOUT, STDERR, ARGV, ARGVOUT en DATA niet beïnvloeden.
  • Nep-meerdimensionale arrays en hashes in Perl 4 stijl («geen meerdimensionaal«).
    Bijvoorbeeld, het specificeren van «$hash{1, 2}» zal leiden tot een fout, het is nodig om een tussenarray te gebruiken, zoals «$hash{join($;, 1, 2)}».
  • Declaratie van prototypes in Perl 4 stijl (het is nodig om «use :prototype()» te gebruiken).

In verder afgelegde plannen wordt standaard ondersteuning voor Unicode verwacht, wat ontwikkelaars zal bevrijden van het specificeren van «use utf8» in de code. Voor modules en scripts die problemen ondervinden met de nieuwe standaardinstellingen, is er een mogelijkheid om het gedrag van Perl 5 te herstellen door de regel «use compat::perl5» aan de code toe te voegen. Bepaalde instellingen blijven ook behouden en kunnen afzonderlijk worden gewijzigd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster