Дан Бук (), подкрепящий над 70 модула в CPAN, на рисковете при внедряването на предложеното . Напомняме, че в нерешените въпроси за Perl 7 се планира по подразбиране да се включи режимът на стриктна проверка "strict", активиране на "use warnings" и промяна на стойността на редица параметри, влияещи на съвместимостта със стария код.
Очаква се, че промяната ще доведе до неработоспособност на множество модули от CPAN в Perl 7 и ще изисква промени във всеки такъв модул, което е нереалистично да се осъществи в предвидената година, особено с оглед на факта, че не всички автори остават достъпни. Нововъведенията в Perl 7 също няма да позволят използването на модули, които са предназначени да поддържат не само най-новата версия на Perl.
Освен това се споменават следните потенциални проблеми:
- Объркване сред новаците поради неработоспособността на някои примери и насоки от ръководствата, написани за Perl 5, в Perl 7.
- Не е изследвано влиянието върху развитието на едноредови скриптове. Perl активно се използва не само за написване на големи скриптове, но и за създаване на едноредови скриптове и кратки сценарии за нуждите на администраторите, където използването на режима strict е ненужно.
- Дистрибутивите имат проблеми с едновременното предоставяне на изпълними файлове за стартиране на скриптове Perl 7 и Perl 5 (очаква се повторение на историята с Python 2 и 3).
- Код, написан за Perl 7, не е длъжен отделно да укаже, че няма да работи в Perl 5; много разработчици няма да посочват минимално поддържаната версия.
- Различни инструменти и модули, зависещи от Perl 5, ще изискват корекции.
- Подготовката на Perl 7, поради преразпределение на ресурсите, за известно време ще замрази разработката на нови функции за Perl.
- Съществува риск от прегаряне и напускане на активни разработчици на интерпретатора Perl, модулите, инструментариите и свързаните пакети поради възникването на голям допълнителен товар без подходяща мотивация (не всеки е съгласен с необходимостта от създаването на Perl 7).
- Културата в общността и отношението към стабилността на Perl ще се променят фундаментално.
- Авторитетът на езика ще бъде подкопан поради критики за нарушение на съвместимостта на Perl 7 със съществуващия код при отсъствието на нещо принципно ново.
За да облекчи негативните последици, Ден Бук предложи своя план, който ще предотврати несъвместимост. Предлага се да се запази предишният процес на разработка и вместо версия 5.34.0 да се присвои номер 7.0.0 на следващото издание, в което да се изключи поддръжката на косвена нотация за извикване на обекти и да се включат нови функции, като try/catch. Промените, като "use strict" и "use warnings", се предлагат да се регулират чрез явното указание на версията на Perl в кода чрез прагма "use v7" (strict вече по подразбиране е включена за "use v5.12" и по-нови версии).
По подразбиране в интерпретатора се препоръчва да се запази наборът от параметри, който не се различава от Perl 5, с изключение на стандартния процес за почистване на остарял синтаксис, използван и преди. Поддръжката на стари функции и остарял синтаксис може както преди да бъде прекратена в съответствие с съществуващите правила за преобразуване на функционалността в категория остаряла. За сигнализиране за използването на нови елементи от Perl 7 в кода и за разделяне на новия и стария стил се предлага да се използва прагма "use v7".
Източник: opennet.ru
