Ang presyo ng paglipat ng Mercurial sa Python 3 ay maaaring isang bakas ng mga hindi inaasahang error.

Tagapamahala ng system ng kontrol ng bersyon papalit-palit ibaba mo ako kabuuan magtrabaho sa paglipat ng proyekto mula sa Python 2 patungo sa Python 3. Sa kabila ng katotohanan na ang mga unang pagtatangka sa pag-port ay ginawa noong 2008, at ang pinabilis na pagbagay para sa pagtatrabaho sa Python 3 ay nagsimula noong 2015, ang buong kakayahang gumamit ng Python 3 ay ipinatupad lamang sa pinakabagong sangay ng Mercurial 5.2.

Ang mga hula tungkol sa katatagan ng port para sa Python 3 ay nakakadismaya. Sa partikular, inaasahan na ang mga random na error ay lalabas sa code sa paglipas ng ilang taon, dahil ang mga pagsubok ay hindi sumasakop sa 100% ng base ng code, at maraming mga problema ang hindi nakikita sa panahon ng static na pagsusuri at lalabas lamang sa runtime. Bilang karagdagan, maraming mga third-party na add-on at extension ang nananatiling hindi naisalin sa Python 3.
Dahil sa panahon ng pag-port ay napagpasyahan na unti-unting iakma ang code sa Python 3, habang pinapanatili ang suporta para sa Python 2, nakakuha ang code ng maraming hack upang pagsamahin ang Python 2 at 3, na kailangang linisin pagkatapos ng suporta para sa Python 2.

Sa pagkomento sa sitwasyon sa Python 3, naniniwala ang Mercurial maintainer na ang desisyon na isulong ang interoperability-breaking Python 3 at ipataw ito bilang isang bago, mas tamang wika, sa kawalan ng mga pagpapabuti ng tagumpay na nauugnay sa mga developer, ay isang malaking pagkakamali na nagdulot ng malaking pinsala sa komunidad at isang halimbawa kung paano hindi kailangang gawin ito ng malalaking proyekto. Sa halip na unti-unting bumuo ng functionality at pahintulutan ang mga application na unti-unting ma-customize, ang paglabas ng Python 3 ay nagpilit sa mga developer na muling isulat ang code at gumastos ng mga mapagkukunan sa pagpapanatili ng magkahiwalay na mga sangay para sa Python 2 at Python 3. Ito ay hindi hanggang pitong taon pagkatapos ng paglabas ng Python 3.0 na Ipinakilala ng Python 3.5 ang mga tampok upang pakinisin ang proseso ng paglipat at matiyak na ang parehong base ng code ay tumatakbo sa parehong Python 2 at Python 3.

Pinagmulan: opennet.ru

Magdagdag ng komento