Коштам перакладу 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

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