Ціною переказу Mercurial на Python 3 може стати шлейф непередбачених помилок

Мейнтейнер системи керування версіями ртутний підвів підсумок роботи з перекладу проекту з 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 в Python3.5. процес переходу та забезпечити роботу однієї кодової бази з Python 2 та Python 3.

Джерело: opennet.ru

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