Die prys om Mercurial na Python 3 te migreer, kan 'n spoor van onverwagte foute wees.

Weergawe beheer stelsel onderhouer kwik my in die steek laat die uitkoms werk aan die oordrag van die projek van Python 2 na Python 3. Ten spyte van die feit dat die eerste oordragpogings in 2008 gedoen is, en versnelde aanpassing vir die werk met Python 3 in 2015 begin het, is die volle vermoë om Python 3 te gebruik eers in die jongste geïmplementeer tak van Mercurial 5.2.

Voorspellings oor die stabiliteit van die poort vir Python 3 is teleurstellend. Daar word veral verwag dat ewekansige foute in die kode oor 'n paar jaar sal opduik, aangesien toetse nie 100% van die kodebasis dek nie, en baie probleme is onsigbaar tydens statiese analise en verskyn slegs tydens looptyd. Daarbenewens bly baie derdeparty-byvoegings en -uitbreidings onvertaal na Python 3.
Aangesien daar tydens die oordrag besluit is om die kode geleidelik aan te pas by Python 3, terwyl ondersteuning vir Python 2 gehandhaaf word, het die kode baie hacks verkry om Python 2 en 3 te kombineer, wat skoongemaak sal moet word nadat ondersteuning vir Python 2 beëindig is.

In kommentaar op die situasie met Python 3, glo die Mercurial-onderhouer dat die besluit om die interoperabiliteitsverbrekende Python 3 te bevorder en dit as 'n nuwe, meer korrekte taal af te dwing, in die afwesigheid van deurbraakverbeterings wat relevant is vir ontwikkelaars, 'n groot fout was wat veroorsaak het groot skade vir die gemeenskap en is 'n voorbeeld van hoe nie groot projekte dit hoef te doen nie. In plaas daarvan om geleidelik funksionaliteit te bou en toepassings toe te laat om inkrementeel aangepas te word, het die vrystelling van Python 3 ontwikkelaars gedwing om kode te herskryf en hulpbronne te bestee om aparte takke vir Python 2 en Python 3 in stand te hou. Dit was eers sewe jaar na die vrystelling van Python 3.0 dat Python 3.5 het kenmerke bekendgestel om die oorgangsproses glad te maak en te verseker dat dieselfde kodebasis beide Python 2 en Python 3 laat loop.

Bron: opennet.ru

Voeg 'n opmerking