Аналіз ризиків при втіленні в життя ініціативи Perl 7

Ден Бук (Dan Book), що підтримує більше 70 модулів CPAN, провів аналіз ризиків при втіленні запропонованого плану впровадження Perl 7. Нагадаємо, що у гілці Perl 7 мають намір увімкнути за умовчанням режим суворої перевірки "strict", активувати "use warnings" і змінити значення ряду параметрів, що впливають на сумісність зі старим кодом.

Очікується, що зміна призведе до непрацездатності в Perl 7 великої кількості модулів із CPAN і вимагатиме внесення змін до кожного такого модульу, що нереалістично реалізувати за намічений рік, особливо з урахуванням того, що не всі автори залишаються доступними. Нововведення з Perl 7 також не дозволять використовувати модулі, які розраховані на підтримку не тільки останньої версії Perl.

Крім того, згадуються такі можливі проблеми:

  • Плутанина у новачків через непрацездатність у Perl 7 деяких прикладів та рекомендацій з посібників, написаних для Perl 5.
  • Не вивчено впливом геть розробку однострочников. 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

Додати коментар або відгук