Ogłoszenie Perl 7

Na dzisiejszej wirtualnej konferencji dla programistów języka Perl ogłoszono projekt Perl 7, który płynnie kontynuuje rozwój gałęzi Perl 5 bez wprowadzania radykalnych zmian. Perl 7 będzie podobny do wydania Perl 5.32.0, z wyjątkiem innych ustawień domyślnych, które lepiej odpowiadają współczesnej praktyce programistycznej. W pozostałych aspektach Perl 7 pozostanie tym samym Perl 5 i zachowa zgodność z wcześniej opracowanymi aplikacjami.

Znacząca zmiana numeru wersji będzie swoistym rozdzielnikiem przejścia do nowego modelu zwiększania funkcjonalności języka Perl bez odczuwalnych naruszeń wstecznej zgodności.
Zakłada się, że stworzenie Perl 7 pomoże przyciągnąć nowych programistów do korzystania z Perla oraz usprawni proces dodawania istotnych nowych możliwości do języka, zachowując jednocześnie zgodność z bazą kodu istniejących projektów. Numer 7 został wybrany, ponieważ Perl 6 był użyty podczas opracowywania języka, który teraz rozwijana jest funkcjonuje pod inną nazwą Raku. Pierwsze wydanie Perl 7 spodziewane jest w przyszłym roku. Gałąź Perl 5.32 stanie się ostatnią w serii Perl 5 i planowane jest jej wsparcie przez 5 do 10 lat.

Najbardziej zauważalną zmianą w Perl 7 będzie domyślne włączenie trybu „strict„, który oznacza ścisłą kontrolę deklaracji zmiennych, użycia wskaźników symbolicznych oraz przypisywania podprogramów. Użycie „use strict” jest dobrym tonem i jest stosowane przez większość programistów. Podobnie planują domyślnie włączyć obsługę ostrzeżeń („use warnings«).

W Perl 7 także planuje się stabilizację oraz domyślne włączenie niektórych już istniejących eksperymentalnych możliwości, takich jak sygnatury funkcji („use feature ‘signatures'”), które pozwalają przy definiowaniu funkcji określić przychodzące argumenty i zautomatyzować kontrolę ich liczby (można będzie pisać „sub foo ($left, $right) {” zamiast „sub foo { my($left, $right) = @_;” ). Planują również domyślnie włączyć wsparcie dla operatora „isa” do sprawdzania, czy obiekt jest instancją podanej klasy lub klasą z niej pochodną („if( $obj isa Package::Name )”, a także operacji postfiksowego dereferencjonowania (postderef) „$sref->$*” zamiast „${ $sref }”, „$aref->@*” zamiast „@{ $aref }” i „$href->%{ … }” zamiast „%$href{ … }”.

Kandydatami do wyłączenia domyślnego w Perl 7 są:

  • Pośrednia notacja wywołania obiektów („brak funkcji qw(indirect)«) — przestarzały sposób wywoływania obiektów, w którym zamiast „->” używa się spacji („method $object @param” zamiast „$object->$method(@param)”). Na przykład, zamiast „my $cgi = new CGI” zawsze należy używać „my $cgi = CGI->new”.
  • Puste deskryptory plików bez deklaracji zmiennych („brak 'bareword::filehandle'«) — użycie konstrukcji w postaci „open FH, $file” spowoduje błąd, należy używać „open my $fh, $file”. Zmiana ta nie wpłynie na standardowe deskryptory plików STDIN, STDOUT, STDERR, ARGV, ARGVOUT oraz DATA.
  • Fikcyjne tablice wielowymiarowe i hasze w stylu Perl 4 („brak 'multidimensional'«).
    Na przykład, określenie „$hash{1, 2}” spowoduje błąd, należy używać pośredniej tablicy, na przykład „$hash{join($;, 1, 2)}”.
  • Deklarowanie prototypów w stylu Perl 4 (należy użyć „use :prototype()”).

W bardziej odległych planach domyślnie przewiduje się włączenie wsparcia dla Unicode, co uwolni programistów od podawania „use utf8” w kodzie. Dla modułów i skryptów, w których wystąpią problemy z nowymi domyślnymi ustawieniami, przewidziano możliwość powrotu do zachowania Perl 5 poprzez dodanie do kodu linii „use compat::perl5”. Niektóre ustawienia również zostaną zachowane i będzie można je zmieniać oddzielnie.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster