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

Giampaolo Rodola' g.rodola a gmail.com
Dom 13 Lug 2014 14:43:16 CEST


2014-07-13 5:01 GMT+02:00 Dario Bertini <berdario a gmail.com>:

> 2014-07-12 11:28 GMT-07:00 Giampaolo Rodola' <g.rodola a gmail.com>:
> > Sono contento di vedere una discussione a riguardo (sono così poche...),
> > inoltre così bene argomentata.
> > Riguardo la mancata adozione di Python 3 ci sono svariati motivi, ma
> credo
> > che il più importante sia il fatto che ancora molte, troppe librerie
> > "grosse" non siano state ancora portate e considerando che sono passati 5
> > anni da Python 3.0 direi che la cosa è abbastanza preoccupante.
> > http://py3readiness.org/
> > Nomi quali Twisted, gevent, eventlet, MySQL-python, pika e molti altri
> > implicano che centinaia di migliaia di persone sono, ad oggi,
> letteralmente
> > *impossibilitate* a fare il porting e quindi non si pongono neanche il
> > problema. ...E non solo: se anche tutte le tue dipendenze fossero
> > soddisfatte, chi te lo dice che in futuro non potresti avere bisogno di
> > qualcosa che non è stato ancora portato, magari basato su Twisted o che
> so
> > io? Come può un'azienda fare una scelta tanto rischiosa? Semplice: non la
> > fa.
>
> Vero, ma non tutte le aziende sono uguali.
>
> Diverse aziende/persone sono invece portate a scommettere su una
> tecnologia, e non si preoccupano troppo del fatto che in futuro
> "potrebbero avere bisogno di qualcosa che non esiste per il loro
> stack/linguaggio"... c'è gente che sceglie OCaml, oppure si scrive il
> proprio linguaggio, o la propria implementazione di un linguaggio
>
> vedi anche la stessa Dropbox con Pyston: mi pare che le estensioni C
> non le supportino ancora, e fino ad allora non sarà certo un drop-in
> replacement per CPython
>
> In confronto allo sforzo di crearsi e mantenere il proprio linguaggio,
> l'effort richiesto per portare una sola libreria, che possa
> ipoteticamente servire in futuro, sfuma... queste aziende, se hanno
> bisogno hanno il know-how per scrivere da 0 quello che gli serve
>
> (non ho nulla contro aziende più conservative: alla fine si tratta
> sempre di fare la solita scelta make-or-buy)
>
> > Un *vero* campione statistico riguardo il successo di Python 3 IMO si
> > potrebbe avere solamente nel momento in cui chiunque può effetturare il
> > porting senza porsi il problema se la libreria X o Y è stata portata o
> meno,
> > e calcolare le tempistiche da allora (altro che da Python 3.0).
> > Per fare un esempio concreto, il porting di Open Stack è fermo da ben una
> > sessantina di loro dipendenze non ancora portate:
> > https://gist.github.com/brettcannon/9009338
> > OK, la code base di Open Stack è enorme, ma il numero rimane indicativo.
> >
>
> Concordo in toto, ma la situazione non è così brutta come può sembrare:
>
> Contando le dipendenze in quel gist, 65 è un numero molto inferiore
> alle quasi 200 dipendenze complessive
>
> E guardando i primi progetti in quella lista, parti di essi funzionano
> già con Python3 (boto) o c'è un rewrite che supporta Python3
> apparentemente (cmd2)



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.

-- 
Giampaolo - http://grodola.blogspot.com
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140713/79f685ab/attachment.html>


Maggiori informazioni sulla lista Python