Аналіз рызык пры ўвасабленні ў жыццё ініцыятывы 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

Дадаць каментар