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.

17 agosto 2016

Google ti prego, ripensaci...


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

27 dicembre 2015

Lo zen di Python

Che succede se si prova ad importare in una console Python "this"? Beh, si ottiene una preziosa lezione di vita...
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

19 luglio 2015

Mitici anni 80 con Kung Fury

Non so se l'intento fosse criticare tutti gli stereotipi dei film degli anni 80 oppure rendere un omaggio a tutto tondo, ma trovo questa opera di David Sandberg  una esempio lampante di quanto con un po' di inventiva si possano realizzare delle gemme assolute, ovviamente di gusto discutibile, ma che trovo innegabilmente divertenti.


16 giugno 2015

Metallica

Sono un grande appassionato di basket, anzi di NBA per l'esattezza, e di musica, anzi di rock per l'esattezza, e ritrovarmi i Metallica a suonare l'inno prima di gara 5 delle finali 2015 è stato davvero sorprendente e piacevole al tempo stesso, anche considerando la deriva artistica che ci opprime.


Tondo è bello...

Tondo è bello...