Myslím si, že pokud nová verze nebude zpětně kompatibilní, měla by mít zcela nový název. Python 3.x je nedostatečná informace, nenese upozornění nekompatibility a určitě to povede k mnoha zmatkům a škodám.
Už vidím ty diskuze:
A) Zkoušel jsem nový program SuperFotoEdge 2.54 a nefunguje mi
B) Mas nainstalovany Python?
A) Mam
B) A kterou verzi Pyhonu pouzivas?
A) 2.6 Proč?
B) Musis si nainstalovat Python 3.0
A) Nainstaloval jsem si 3 a stejně to nejde. Nemůže to připojit LibPythonImage 2.6
B) Musis si poridit verzi 3.7, ktera je kompatibilni s Pythonem 3.x
....
....
....
Měli šáhnout po dalším hadovi. Grasssnake, Viper, Mamba, Cobra, Taipan, Coralsnake ...
Možná ano. Na druhou stranu, rozumný uživatel Linuxu (a jiných moderních *nixů) obyčejně používá balíčkovací systém, který za něj řeší závislost sám. Větší problém může být provozování pod Windows, ale tam si myslím, že by mohla problém docela dobře vyřešit distribuce vytvořená pomocí py2exe apod. Doufejme, že podobných potíží bude minimum. Podobné potíže přináší Qt 4.x (včetně např. PyQt), v minulosti Gtk 2.x, přechod na novou major verzi KDE atd. Přejmenováním se zatím nic podobného, co si pamatuji, neřešilo.
Tak mě napadá, že v Pythonu přibývaly nové featury podobným stylem pořád. Pokud autor použil generátor nebo list comprehension, nemohl např. počítat s tím, že program poběží na starší verzi Pythonu. Horší je porušení zpětné kompatibility, což znamená, že program psaný pro Python 2.x nepoběží pravděpodobně pod 3.x. Týká se s největší pravděpodobností příkazu print a formátovacího operátoru, operátor // bylo možné pro celočíselné dělení používat už delší dobu, ale nedělal to asi skoro nikdo. Na druhou stranu, pokud někdo použil v novějším projektu klasické třídy nebo řetězcové výjimky, je jeho chyba, že program pod 3.x nepoběží.
No, původně jsem nechtěl na tento příspěvek odpovídat (mj. pro jeho nekonkrétnost), ale ať to vezmu jak chci, jako takový "vopruz" mi to nepřijde. Bude to podle mě fungovat jako v Javě - pokud neuvedu předka (předky), dědí se od kořene (ala java.lang.Object). A skoro ve všech případech je přechod od klasické třídy k nové třídě bez problémů (na věci typu rexec se beztak po zavedení new-style classes nedá moc spoléhat a i dříve "klasické" wrappery typu sip přešly na nové třídy).