[Python] Python 2.7 & 3 - afraid and terrified (?)

Giovanni Porcari giovanni.porcari a softwell.it
Dom 13 Lug 2014 20:05:44 CEST


> Il giorno 13/lug/2014, alle ore 14:43, Giampaolo Rodola' <g.rodola a gmail.com> ha scritto:
> 
> 65 su 200 è circa il 25%: non è affatto poco. Inoltre considera che alcune di quelle saranno portate tra tanto (gevent / eventlet), altre probabilmente non saranno portate affatto e a farmelo pensare è il fatto che non l'abbiano fatto finora. In quel caso il processo si allunga ulteriormente perchè hai 3 possibilità: portarle tu, aspettare un fork o eliminarle in toto (se puoi). Applica questa formula ad un progetto grosso come OpenStack e ti renderai conto che a conti fatti ad oggi il porting non è proprio possibile. Ridimensiona il problema a una code base più contenuta ed avrai comunque più o meno lo stesso risultato. Realisticamente stiamo guardando ad un processo che potrebbe benissimo durare altri 5 anni o più, durante il quale la 2.7 diventerà sempre più obsoleta fino a non essere più comptetitiva come prodotto (nel 2020 cesseranno di mantenerla). Già dal punto di vista della sicurezza sono spuntate le prime magagne con SSL e tutti i moduli che ne dipendono e la compilazione di estensioni C su Windows è già ad oggi un problema in quanto Microsoft non distribuisce più Visual Studio 2008. A parer mio la situazione è preoccupante non tanto per il numero esiguo di migrazioni fatte finora, quanto per il fatto che non vedo segnali di miglioramento per l'immediato futuro. Le migliorie sintattiche/puristiche interessano poco e la migliore gestione di unicode per molti è addirittura un problema anzichè un vantaggio. Di fatto credo che ad oggi l'unico vero incipit a migrare sia il fatto che la 2.7 diventerà obsoleta quindi si sarà semplicemente obbligati a migrare (e neanche tutti) ma quando l'incipit è un bastone anzichè una carota non è mai un bene.

Domanda da ignorante: Ma è radicalmente impossibile pensare ad una versione
di python 3 che sia in qualche modo completamente retrocompatibile  con la 2.7
o con una ipotetica 2.8 ?

Mi rendo conto che magari il codice 2.7 potrebbe girare in modo non ottimizzato
ma meglio non ottimizzato che non funzionante.

Se appena fosse tecnicamente realizzabile credo che potrebbe essere una soluzione
per avere una migrazione totale immediata e poi con calma ogni sviluppatore
potrebbe portare i moduli alla 2.7 diluendo il lavoro nel tempo.

Sogno qualcosa di impossibile ? (probabilmente sì :D )


G


Maggiori informazioni sulla lista Python