Dan Book (), který podporuje více než 70 modulů v CPAN, rizik při realizaci navrženého . Připomeňme, že v odvětví Perl 7 se plánuje zahrnout režim přísné kontroly „strict“ jako výchozí, aktivovat „use warnings“ a změnit hodnotu řady parametrů, které ovlivňují kompatibilitu se starým kódem.
Očekává se, že tato změna povede k nefunkčnosti velkého množství modulů z CPAN v Perl 7 a bude vyžadovat úpravy každého takového modulu, což je nerealistické realizovat během plánovaného roku, zejména s ohledem na to, že ne všichni autoři jsou stále k dispozici. Novinky z Perl 7 rovněž neumožní používat moduly, které byly navrženy pro podporu nejen poslední verze Perl.
Dále se zmiňují možné problémy:
- Zmatek u nováčků kvůli nefunkčnosti některých příkladů a doporučení z příruček napsaných pro Perl 5 v Perl 7.
- Není prozkoumán vliv na vývoj jednorázových skriptů. Perl se aktivně používá nejen k psaní velkých skriptů, ale i k vytváření jednorázových skriptů a krátkých scénářů pro potřeby správců, kde je použití režimu strict nadbytečné.
- Distribuce čelí problému současného dodávání spustitelných souborů pro spuštění skriptů Perl 7 a Perl 5 (očekává se opakování historie s Pythonem 2 a 3).
- Kód napsaný pro Perl 7 nemusí zvlášť zdůrazňovat, že nebude fungovat v Perl 5, mnozí vývojáři nebudou uvádět minimálně podporovanou verzi.
- Různé nástroje a moduly spojené s Perl 5 budou vyžadovat opravy.
- Příprava Perl 7 kvůli redistribuci zdrojů na nějakou dobu zmrazí vývoj nových funkcí Perl.
- Objevuje se riziko vyhoření a odchodu aktivních vývojářů interpretátoru Perl, modulů, nástrojů a doplňkových balíčků kvůli velkému dodatečnému zatížení bez řádné motivace (ne všichni souhlasí s nezbytností vytvoření Perl 7).
- Základně se změní kultura v komunitě a postoj k stabilitě Perl.
- Bude podkopána autorita jazyka kvůli kritice, že Perl 7 porušuje kompatibilitu se stávajícím kódem při absenci něčeho zásadně nového.
Aby zmniejszyć negatywne skutki, Dan Book zaproponował swój plan, który pozwoli uniknąć problemów z kompatybilnością. Proponuje się zachowanie dotychczasowego procesu rozwoju i nadanie numeru 7.0.0 następnemu wydaniu zamiast 5.34.0, w którym wyłączona zostanie obsługa pośredniej notacji wywołania obiektów oraz wprowadzone zostaną nowe funkcje, takie jak try/catch. Zmiany, takie jak 'use strict' i 'use warnings', powinny być regulowane poprzez jednoznaczne wskazanie wersji Perla w kodzie za pomocą pragmy 'use v7' (strict jest już domyślnie włączony dla 'use v5.12' i nowszych wydań).
Zaleca się, aby w interpreterze zachować zestaw parametrów, który nie różni się od Perla 5, z wyjątkiem standardowego procesu czyszczenia przestarzałej składni, stosowanej wcześniej. Wsparcie dla starych funkcji i przestarzałej składni można jak wcześniej wyłączać zgodnie z istniejącymi zasadami przenoszenia funkcjonalności do kategorii przestarzałych. Sygnały dotyczące użycia w kodzie nowych elementów Perla 7 oraz dla rozróżnienia nowego i starego stylu proponuje się za pomocą pragmy 'use v7'.
Zdroj: opennet.ru
