Byl oznámen Perl 7

Na dnešní virtuální konferenci vývojářů jazyka Perl byl oznámen projekt Perl 7, který plynule naváže na vývoj větve Perl 5 bez radikálních změn. Perl 7 bude obdobný verzi Perl 5.32.0, s výjimkou jiných výchozích nastavení, která lépe odpovídají moderní praxi vývoje. Jinak zůstane Perl 7 stejný jako Perl 5 a zachová kompatibilitu s dříve vyvinutými aplikacemi.

Významná změna čísla verze se stane jakýmsi oddělovačem přechodu na nový model zvyšování funkčnosti jazyka Perl bez výrazného narušení zpětné kompatibility.
Předpokládá se, že vytvoření Perl 7 pomůže přilákat nové vývojáře k používání Perlu a usnadní proces přidávání významných nových funkcí do jazyka, zatímco se zachová kompatibilita s kódem existujících projektů. Číslo 7 bylo zvoleno, protože Perl 6 byl použit při vývoji jazyka, který nyní se vyvíjí je pod jiným názvem Raku. První vydání Perl 7 se očekává v příštím roce. Větev Perl 5.32 se stane poslední v sérii Perl 5 a plánuje se její podpora po dobu 5 až 10 let.

Nejvýraznější změnou v Perl 7 bude zahrnutí výchozího režimu „strict“, který zahrnuje přísnou kontrolu deklarace proměnných, použití symbolických ukazatelů a přiřazení podprogramům. Použití „use strict“ je dobrým tonem a používá ho většina vývojářů. Podobně se plánuje výchozí zahrnutí zpracování varování („use warnings«).

V Perl 7 se také počítá s tím, že budou stabilizovány a výchozí způsobem zahrnuty některé již existující experimentální funkce, jako například signatury funkcí („use feature ‘signatures'“), které umožňují při definici funkce specifikovat vstupní argumenty a automatizovat kontrolu jejich počtu (bude možné napsat „sub foo ($left, $right) {“ místo „sub foo { my($left, $right) = @_ ;“). Také se plánuje výchozí podpora operátoru „isa“ pro ověřování toho, zda je objekt instancí zadané třídy nebo třídy odvozené od ní („if( $obj isa Package::Name )“, a také operace postfixního dereferencování (postderef) „$sref->$*“ místo „${ $sref }“, „$aref->@*“ místo „@{ $aref }“ a „$href->%{ … }“ místo „%$href{ … }“.

Kandidáty na vypnutí výchozího režimu v Perl 7 jsou:

  • Nepřímá notace volání objektů („žádná funkce qw(indirect)«) — zastaralý způsob volání objektů, kde se používá mezera místo „->“ („method $object @param“ místo „$object->method(@param)“). Například místo „my $cgi = new CGI“ bude vždy nutné používat „my $cgi = CGI->new“.
  • Holé popisovače souborů bez deklarace proměnných („žádný bareword::filehandle„) — použití konstrukcí jako „open FH, $file“ povede k chybě, musí se použít „open my $fh, $file“. Změna se nebude dotýkat standardních popisovačů souborů STDIN, STDOUT, STDERR, ARGV, ARGVOUT a DATA.
  • Fiktivní vícerozměrné pole a hashe ve stylu Perl 4 („žádný multidimenzionální«).
    Například uvádění „$hash{1, 2}“ povede k chybě, musí se použít mezilehlé pole, například „$hash{join($;, 1, 2)}“.
  • Deklarace prototypů ve stylu Perl 4 (musí se použít „use :prototype()“).

V dlouhodobějších plánech se standardně předpokládá zahrnutí podpory Unicode, což zbaví vývojáře nutnosti uvádět „use utf8“ v kódu. Pro moduly a skripty, kde vzniknou problémy s novými standardními nastaveními, je k dispozici možnost vrátit chování Perl 5 přidáním řádku „use compat::perl5“ do kódu. Některá nastavení budou také uložena a bude možné je měnit jednotlivě.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster