Ценой перевода Mercurial на Python 3 может стать шлейф непредвиденных ошибок

14 января 2020 года

Мэйнтейнер системы управления версиями 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.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Ценой перевода Mercurial на Python 3 может стать шлейф непредвиденных ошибок», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.