Quando Guido van Rossum, all’inizio degli anni novanta del secolo scorso, ha battezzato il linguaggio di programmazione da lui ideato con il nome di Python intendeva semplicemente rendere omaggio ai Monty Python, un gruppo di comici inglesi che gli piacevano molto.
Dopo un ventennio di dilagante successo di questo linguaggio, si potrebbe pensare che il nome che richiama il pitone sia invece dovuto alla grande flessibilità di cui esso è dotato.
Si tratta, infatti, del linguaggio più facile da imparare e che, nella sua semplicità, manifesta una potenza di prima grandezza per fare di tutto. Al punto da essere diventato il linguaggio ideale per il machine learning.
In questo blog ho già parlato di Python, presentando un mio programmino esemplificativo con cui si gioca a Master Mind. Ho anche proposto una piccola guida per evidenziare le differenze tra la vecchia versione Python 2 e la nuova versione Python 3. Soprattutto ho indicato come e con quali strumenti si possa utilizzare il linguaggio Python su Android. Il tutto avveniva nel giugno 2015 e si trova archiviato nelle categorie Programmazione, Programmi e Suggerimenti.
Mi è venuta voglia di riparlare di Python dopo che, negli ultimi mesi dello scorso anno, è stata finalmente pubblicata la traduzione italiana di un interessante libro del 2015 di Sebastian Raschka, Python Machine Learning, con il titolo Machine learning con Python, Costruire algoritmi per generare conoscenza.
Alan Turing, precursore dell’intelligenza artificiale, diceva che le macchine non possono pensare, però possono fare quello che facciamo noi quando pensiamo. Purtroppo Turing è stato eliminato – mi pare l’espressione giusta per la tragedia che lo ha colpito – prima di poter costatare quanto vere fossero le sue intuizioni.
Infatti non solo la macchina può fare ciò che facciamo noi quando pensiamo ma, in certe situazioni, riesce a farlo meglio.
Consideriamo quanto prima e meglio di un cervello umano una macchina possa analizzare grandi quantità di dati al fine di dedurre modelli di comportamento, tendenze utili a fini previsivi, addirittura ponendo in atto procedimenti e algoritmi per la presa di decisioni basate su come quei dati si presentano e si evolvono: la macchina che impara dall’esperienza.
In epoca di Big Data servono strumenti per fare queste cose e Python si rivela essere uno dei migliori.
Probabilmente il segreto sta nella sua semplicità e nell’essere il linguaggio informatico che più si avvicina alla logica e al linguaggio umano.
Uno scienziato che voglia direttamente lavorare su una ricerca sperimentando algoritmi propri, se usasse un linguaggio di più basso livello come il C dovrebbe perdere gran parte del proprio impegno e del proprio tempo ad occuparsi di informatica: gestione della memoria, uso di puntatori, sintassi ed espressioni strane, ecc. Chi usa un linguaggio come Python è sollevato da tutti questi impicci e si può meglio concentrare sul problema vero.
Peraltro, con le macchine che abbiamo oggi, nessuno riesce veramente ad avvertire i vantaggi, in termini di efficienza e velocità di elaborazione, che ci offre un programma compilato in C rispetto al più lento, si fa per dire, script Python interpretato.
Anzi, il fatto che Python sia interpretato e l’interprete sia dotato di una shell propria con la quale si possono eseguire comandi singoli, offre una preziosa opportunità di apprendimento e di sperimentazione.
Esistono numerosi manuali, anche scaricabili gratuitamente da Internet, sul linguaggio Python ed abbiamo mille modi di impararlo in quanto tale.
Una zona che ritengo presenti qualche situazione di non semplice comprensione è quella di cosa esista attorno a Python e di come Python e i suoi script possano ottimamente interagire con il nostro computer e con il computer di altri.
Ho ritenuto pertanto di dedicare a questi argomenti un manualetto, qui allegato in formato PDF, liberamente scaricabile, stampabile e distribuibile.