03 settembre 2016

[Python.it] Python 2.x ancora al top, davvero?

Inutile nascondersi dietro un dito, l'eterna diatriba tra Python 2 vs Python 3 è stata (ed è?) un'autentica spina nel fianco di tutti i pythonisti, che forse mai fino in fondo hanno digerito questa "divisione" nel proprio linguaggio. Non è difficile capire che tutta la comunità si è dovuta prodigare per supportare due versioni non del tutto compatibili tra loro, anzi diciamo pure incompatibili, spendendo tanto tempo per adeguare/creare prodotti con una doppia compatibilità. Se da un punto di vista questo sdoppiamento ha portato ad un notevole incremento delle ore/lavoro non certo gradito, è pur vero che da un'altra ha permesso a tutti coloro avessero sviluppato con la versione 2.7, di non dover forzatamente rivedere completamente i propri piani e gettarsi forzatamente in una conversione alla nuova versione del linguaggio. Purtroppo in molti, forse troppi, sono risultati estremamente riluttanti al passaggio alla versione 3.x del linguaggio, ed ancora oggi la 2.x è presente praticamente ovunque.

Quale versione scegliere?
Ma cosa dice la Python Software Foundation in tal proposito?

Python 2.x is legacy, Python 3.x is the present and future of the language

Ok quindi cosa si deve scegliere per iniziare il percorso di apprendimento? La risposta che ho dato e che continuo a dare, almeno da qualche anno a questa parte, è che se si comincia da zero con Python e non si hanno particolari esigenze, non ci si devono porre troppe domande e scegliere la versione 3.x del linguaggio. Imparare direttamente questa versione, che diventerà prima o poi lo standard, è senza dubbio la più intelligente come scelta, passatemi il termine forse un po' troppo forte. Certo non sono cieco e mi rendo conto che se si trova la versione 2.7 del linguaggio praticamente ovunque, in questo momento sto pensando alle varie distribuzioni GNU/Linux, tutto potrebbe essere dannatamente complicato, ma non siano nati per soffrire?

Fatti questi bei discorsi da filosofo del **BIP**, ora apriamo l'angolo dell'autoflagellazione. Sì perché se vi ho appena suggerito di iniziare senza indugi con la versione 3.x del linguaggio, dovete sapere che tra luglio ed agosto di quest'anno, non cinque anni fa ma solo qualche giorno fa, i pacchetti installati tramite pip vedono una netta prevalenza della versione 2.7 del linguaggio ed il grafico sottostante intitolato Python 2.7 regna ancora sovrana nel 2016 forse ci da un bel indizio.



Conclusione
Vi tralascio tutta la serie di grafici che prendono in esame alcune librerie/framework di Python, perché sono tutti simili al precedente. Che siano presi in considerazione numpy, matplotlib, pandas, etc... sembra chiaro che la versione del linguaggio 2.7 sia ancora la più utilizzata. Questo però se da una parte vuole dimostrare che i programmatori sono pigri nel passare alla nuova versione del linguaggio (ovviamente scherzo, non è pigrizia ma un'analisi tra costi e benefici), dovete sapere che la EOL (end of life) della versione 2.7 è fissata nel 2020, quindi anche in questo caso è davvero una scadenza prossima.

La versione 2.7 regna è vero, ma la 3.x ne richiederà la testa prima o poi, sappiamo già che sarà la vincitrice designata.

Tondo è bello...

Tondo è bello...