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.

06 giugno 2016

NBA impersonator

Trovo Brandon Armstrong un genio assoluto, riesce a cogliere delle sfumature che fanno letteralmente morire se si conoscono vizi e virtù dei personaggi imitati.


04 giugno 2016

Famous Cellphone Ringtones Played On The Piano

Lo sapevo che prima o poi qualcuno avrebbe riconosciuto la "grandezza" del "piccolo".


22 maggio 2016

[Python.it] Risorse per imparare Python

Libri cartacei (Italiano)
Python di Marco Beri [Guida tascabile, ottima per immergerti subito nel linguaggio]
Imparare Python di Mark Lutz [La storia dell'insegnamento di Python]
Programmare con Python - Guida completa di Marco Buttu [Ottimo testo]
Programmare in Python di Kenneth A. Lambert

Libri digitali (Italiano)

Pensare in Python di Allen B. Downey
Immersione in Python 3 di Mark Pilgrim

Libri cartacei (Inglese)
Nota: Ovviamente esistono molte delle versioni elencate in italiano.
Learning Python 5th edition di Mark Lutz [Versione aggiornata di Imparare Python]
Python Cookbook di David Beazley e Brian K. Jones [Fuori concorso perché non è una guida per principianti, ma è essenziale su ogni scrivania di un programmatore Python]

Libri digitali (Inglese)
Learn Python the Hard Way di Zed Shaw [Video e tutorial, con risorse anche a pagamento]
Think Python di Allen B. Downey
Invent with Python di Albert Sweigart [Non solo un libro, ma ben quattro]

Ritorno al passato

Ci sono delle operazioni nostalgia che non possono lasciare indifferenti. Ed è in questa sfera che si colloca questo Dino Dini's Kick Off Revival che riporta i ricordi al passato, da quando bambino sulla mia fedele Amiga cercavo di conquistare il mondo.


21 maggio 2016

[Python.it] Piccole operazioni su dizionari

Piccole operazioni su dizionari.
>>> d
{'Daniele':7, 'Gabecon':1000, 'Carlo':2000}

>>> d["Gundam"] = 10000 #Aggiungiamo Gundam con valore 10000

>>> d
{'Gundam': 10000, 'Carlo': 2000, 'Daniele': 7, 'Gabecon': 1000}

>>> d["Gundam"] #Controlliamo solo Gundam
10000

>>> d["Gundam"] = 20000 #Modifichiamo Gundam a 20000

>>> d
{'Carlo': 2000, 'Daniele': 7, 'Gabecon': 1000, 'Gundam': 20000}

>>> del d["Gundam"] #Togliamo Gundam

>>> d
{'Carlo': 2000, 'Daniele': 7, 'Gabecon': 1000}
>>> d
{'Carlo': 2000, 'Daniele': 7, 'Gabecon': 1000}

#######################################
## Salviamo il dizionario in un file ##
#######################################

>>> type(d)
dict

>>> d['Gundam'] = 10000

>>> import json

>>> with open("/path/di/file.txt","w") as f:
        json.dump(d,f)

>>> f.closed
True

>>> with open("/path/di/file.txt", "r") as f:
        d = json.load(f)

>>> d
{u'Carlo': 2000, u'Daniele': 7, u'Gabecon': 1000, u'Gundam': 10000}

>>> type(d)
dict

Tondo è bello...

Tondo è bello...