Quattro chiacchiere su Python
In questo capitolo ci sono alcune informazioni di base su Python e la sua storia. Giusto per capire cosa è, da dove viene e per provare a capire dove sta andando.
Se non sei per le chiacchiere… salta al prossimo capitolo, quello dell’installazione!!
Python, la storia (brevissima)

Python è un linguaggio ideato da Guido van Rossum all’inizio degli anni novanta. Il nome fu scelto (tenetevi alla sedia) per via della sua passione per i Monty Python, un gruppo comico britannico attivo negli anni settanta. Per rendervi conto della incredibile comicità del gruppo… ecco uno dei primi video su YouTube ottenuto cercando Monty Python ita. Dura 84 minuti. Noi non supereremo il minuto 4…
La storia racconta che durante le vacanze di Natale del 1989, Guido progettò questo nuovo linguaggio, cercando di mettere in esso tutte le caratteristiche positive che aveva trovato negli altri linguaggi di programmazione, provando ad evitare forzature o strutture non lineari.
Subito Python diventa uno strumento imprescindibile per l’azienda in cui Guido lavora. Questo fatto e la licenza opensource con cui van Rossum distribuisce la sua creatura determinano la sua fortuna: Python diventa brevemente uno dei linguaggi più utilizzati e seguiti da una comunità attiva di sviluppatori.
Python ha avuto il suo momento di massima espansione con la versione 2.x del linguaggio, rilasciata nel 2000, momento in cui è passato da “linguaggio di programmazione settoriale” a “linguaggio tra i più utilizzati e conosciuti”.
Pochi anni dopo, ci si rende conto che per fare un passo definitivo, il linguaggio deve essere sistemato per funzionare bene in tutte le lingue (e in tutti i set di caratteri), avere una sintassi consistente e facile da dedurre e indovinare ed essere facile da potenziare tramite librerie di supporto.
Nel 2008 nasce Python 3.0.
Il tempo ha fatto il resto… la versione 2.x di Python ha fatto la storia, ma ormai deve anche rimanerci… Python 3.x (luglio 2026, versione 3.14) è attualmente il presente di uno dei migliori linguaggi di programmazione della seppur breve storia dell’Informatica.
Se controllate sul sito di riferimento potrete trovare una sezione quotes con le citazioni famose su Python da parte di personaggi famosi delle aziende più in vista e una sezione Success Stories che appunto elenca le maggiori storie di successo ove Python ha contribuito in maniera determinante.
Basta, storia finita!
Linguaggi compilati vs interpretati
Warning
Le cose che spiego in questo capitolo non sono banali per chi non ha (ancora) mai programmato con alcun linguaggio.
Sentitevi liberi di leggere velocemente questa parte, ma ricordatevi di riguardare queste righe almeno una volta all’anno, per meglio apprezzare il livello di comprensione del linguaggio che avete raggiunto!
I linguaggi di programmazione si dividono in:
- linguaggi compilati
- linguaggi interpretati
Vi dico subito che Python è un linguaggio interpretato. Nelle prossime righe cercheremo di capire cosa questo significhi e quale differenza faccia con i linguaggi compilati.
Nei linguaggi compilati:
- si scrive il codice sorgente, un file di testo semplice, nel linguaggio di programmazione scelto.
- si passa il codice ad un compilatore che genera un programma eseguibile (scritto in linguaggio macchina).
- si distribuisce il programma eseguibile e lo si esegue ogni volta che lo si desidera.
Esempi di linguaggi compilati: C, C++, Pascal, Cobol.
Creato l’eseguibile, il compilatore non serve più. Possiamo eseguire il nostro programma semplicemente invocando l’eseguibile.

Nei linguaggi interpretati:
- si scrive il codice sorgente, un file di testo semplice, nel linguaggio di programmazione scelto.
- quando vuoi eseguire il programma, passi il codice sorgente all’interprete: questo lo traduce, istruzione per istruzione in linguaggio macchina e lo esegue direttamente.
Esempi di linguaggi interpretati: Javascript, PHP, Perl, Python.
Ogni volta che si vuole rieseguire il programma, riparte l’interpretazione del codice.

Questa importante caratteristica porta inevitabilmente importanti differenze insite nei linguaggi. Ne elenco alcune:
-
I programmi generati da linguaggi compilati sono generalmente più veloci. Infatti eseguono direttamente codice nativo (pronto per essere eseguito dal compilatore) invece di doverlo interpretare al volo;
-
Quando scrivi codice, i programmi interpretati sono subito pronti per l’interpretazione e il testing, senza dover ad ogni minima modifica ricompilare.
-
I programmi generati da linguaggi compilati utilizzano meno memoria, ma quelli interpretati la usano solitamente meglio, perché è l’interprete che se ne occupa.
-
Per ogni sistema operativo supportato è necessario procedere ad una ricompilazione del codice sorgente. Infatti gli eseguibili generati dalla compilazione dipendono dal sistema operativo ove essi sono compilati;
-
il codice di un programma interpretato va bene così com’è per ogni sistema operativo, ma è necessario avere un interprete adatto per quel sistema operativo per poterlo eseguire.
Python, per massimizzare i punti a favore e ottenere il miglior comportamento possibile, può utilizzare un approccio misto, sbilanciato dalla parte dell’interpretazione:
Note
L’interprete Python, alla prima esecuzione del codice, fa una sorta di compilazione, generando un programma (bytecode, estensione .pyc) non direttamente eseguibile dal dispositivo, ma direttamente eseguibile dalla parte dell’interprete preposta allo scopo: la macchina virtuale.
In questo modo, dalla seconda esecuzione in poi, la velocità della stessa sarà paragonabile (in molti casi identica) a quella dei linguaggi compilati.

Tutto il processo descritto è completamente automatico: il programmatore non deve far altro che scrivere codice e testarne l’esecuzione nell’ambiente adatto.