Цената за прехвърляне на Mercurial на Python 3 може да бъде обременена с непредвидени грешки

Поддръжник на системата за управление на версии Mercurial обобщи резултата от работата по прехвърлянето на проекта от Python 2 на Python 3. Въпреки че първите опити за портване бяха направени още през 2008 г., а адаптацията за работа с Python 3 започна в ускорен режим през 2015 г., пълната поддръжка на Python 3 беше реализирана само в последната версия на Mercurial 5.2.

Прогнозите за стабилността на порта за Python 3 са неутешителни. По-специално, предполага се, че в течение на няколко години в кода ще се появяват случайни грешки, тъй като тестовете не покриват 100% от кодовата база, а много проблеми остават незабелязани при статичен анализ и се проявяват само по време на изпълнение. Освен това, много странични добавки и разширения не са преведени на Python 3.
Тъй като при портването беше взето решение постепенно да се адаптира кодът за Python 3, запазвайки поддръжката за Python 2, кодът натрупа множество хакове за съвместимост между Python 2 и 3, които след прекратяване на поддръжката на Python 2 ще трябва да бъдат премахнати.

Коментари по ситуацията с Python 3 от поддръжника на Mercurial показват, че решението за насилствено преминаване към несъвместимата версия Python 3, при отсъствие на значителни подобрения от значение за разработчиците, беше голяма грешка, която нанесе сериозна вреда на общността и е пример за това как не трябва да действат големите проекти. Вместо да се увеличава постепенно функционалността и да се осигурява възможност за инкрементална адаптация на приложенията, излизането на Python 3 накара разработчиците да пренапишат кода и да инвестират ресурси в поддържането на отделни версии за Python 2 и Python 3. Само седем години след пускането на Python 3.0, в Python 3.5 бяха реализирани възможности, които улесниха прехода и осигуриха работа с една кодова база за Python 2 и Python 3.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster