Il 08/06/2015 21:42, Matteo Scarpa ha scritto:
perché si sviluppano ancora applicazioni in python 2.qualcosa
(ovviamente a meno di necessitá particolari tipo la libreria c'é solo
per quella specifica versione) ripsetto che a una 3,qualcosa? É una cosa
prettamente di guisti/abitudine o c´é qualcosa sotto?

Ciao Matteo,
cerco di essere il più sintetico possibile, i pignoli in lista non me ne vogliano se lascio margini d'imprecisione nella risposta ;)

Premetto che lavoro su progetti web o che hanno a che fare col web. In questo ambito è desiderabile poter soddisfare il numero più alto possibile di richieste al secondo utilizzando il minimo possibile di RAM.

Stiamo rimanendo su Python 2 per i seguenti motivi, rispetto a Python 3:
- Python 2 è più veloce.
- Python 2 consuma meno memoria.
- Ancora non tutte le librerie che ci servono sono supportate su Python 3 e quelle supportate spesso mancano di qualcosa pur di mantenere una certa retrocompatibilità (anche solo una libreria importante può bloccare una migrazione). - In Python 3 si è persa l'opportunità di fare una buona implementazione di Unicode per cui non si vedono vantaggi nel passaggio. - Python 3 è considerato pienamente maturo dalla versione 3.4, che è relativamente recente. - La migrazione 2to3 funziona solo parzialmente bene con Python 3.5, ci sono diverse cose da fare a mano per migrare un'intera applicazione e non si può fermare tutto il business nel frattempo.

Per fare un cambio di versione così importante non è sufficiente la motivazione "perché Python 3 è più recente", ci vuole almeno un benefit veramente importante non raggiungibile diversamente per poter giustificare i costi di migrazione. Per inciso, non ha senso migrare se non c'è un beneficio tangibile e consistente a livello di fatturato, in modo da compensare i costi di migrazione e dare un vantaggio competitivo. Piuttosto è meglio continuare a supportare il software su Python 2 per qualche anno e poi, eventualmente, approfittare dell'occasione per rivedere l'applicazione.

Per alcuni progetti sto passando a Go invece che a Python 3, questi sono i benefit che percepisco come importanti:
- Tipizzazione statica, errori in fase di compilazione invece che a runtime
- Binario compilato senza dipendenze esterne (deploy facile)
- Tempi di compilazione minimi (spesso meno di quanto ci mette Python a partire)
- Garbage collector sufficientemente buono
- Unicode
- Facile da imparare anche per i junior, seppur non facile quanto Python
- Indicativamente 10 volte più performante di Python
- Indicativamente 10 volte meno memoria consumata rispetto a Python
- Comodo per gestire concorrenza e parallelismo

Buona serata,
Davide Muzzarelli
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a