Vai al contenuto principale
StoriaStoria dell’informaticaPrincipiante

Python: leggibilità, batterie incluse e un ecosistema globale

Da ABC allo steering council: come leggibilità, estensibilità e governance comunitaria hanno plasmato Python.

Pubblicato 17 agosto 2026Lettura : 7 minDi Yann Bastien
Python rappresentato attraverso leggibilità, batterie incluse e un ecosistema globale
Mostra indice
  1. Prima di Python: l’esperienza ABC
  2. Natale 1989: un progetto personale
  3. Perché si chiama Python?
  4. 1991: la prima versione pubblica
  5. L’indentazione come sintassi
  6. “Batteries included”
  7. Moduli, pacchetti e riuso
  8. Python 1.0, CNRI e i PEP
  9. Python 2.0 e la Python Software Foundation
  10. PyPI e l’ecosistema dei pacchetti
  11. Python sul Web
  12. Python 3: rompere consapevolmente la compatibilità
  13. Python 2 contro Python 3
  14. Calcolo scientifico
  15. Jupyter e calcolo interattivo
  16. pandas e data science
  17. Python e intelligenza artificiale
  18. Come può essere veloce senza esserlo sempre
  19. Il GIL
  20. Un linguaggio per formazione e automazione
  21. La governance dopo Guido van Rossum
  22. Perché Python ha avuto tanto successo
  23. Domande frequenti
  24. Chi ha creato Python?
  25. Perché si chiama Python?
  26. Perché usa l’indentazione come sintassi?
  27. Cosa significa “batteries included”?
  28. Perché il passaggio da Python 2 a Python 3 fu difficile?
  29. Chi decide oggi l’evoluzione di Python?

Python è oggi utilizzato per scripting di sistema, applicazioni Web, data science, formazione, automazione, intelligenza artificiale e calcolo scientifico. La sua versatilità può far pensare che sia stato progettato fin dall’inizio come linguaggio universale.

Le origini furono più modeste. Alla fine degli anni Ottanta Guido van Rossum iniziò al CWI, centro di ricerca olandese, un progetto personale: una lingua piacevole da usare, leggibile, estensibile e sufficientemente potente per la programmazione quotidiana.

Prima di Python: l’esperienza ABC

Al CWI van Rossum lavorò con il team di ABC, un linguaggio pensato per essere facile da imparare, con sintassi chiara e astrazioni di alto livello. ABC fu influente sul piano delle idee ma poco diffuso.

Python ne conservò leggibilità e pratici tipi di dati integrati, correggendone però la scarsa estensibilità e la difficile integrazione con Unix e librerie scritte in altri linguaggi.

Natale 1989: un progetto personale

Durante le vacanze di Natale del 1989 van Rossum iniziò a scrivere un nuovo interprete. Voleva colmare il divario tra script shell e programmi più grandi, mantenendo una sintassi leggibile e una facile interazione con sistema operativo e codice esistente.

L’estensibilità divenne fondamentale. L’implementazione di riferimento CPython è scritta in C e supporta estensioni native.

Perché si chiama Python?

Il nome non deriva dal serpente. Van Rossum era appassionato del gruppo comico britannico Monty Python e desiderava un nome breve, distintivo e leggermente irriverente.

1991: la prima versione pubblica

Nel febbraio 1991 van Rossum annunciò Python su Usenet. Il linguaggio conteneva già funzioni, eccezioni, moduli, liste e dizionari.

Era interpretato e interattivo: gli sviluppatori potevano provare subito un’espressione e usare poi gli stessi concetti in programmi più grandi. Questa breve distanza tra idea e risultato divenne un vantaggio per esplorazione, debugging, insegnamento e automazione.

L’indentazione come sintassi

Una caratteristica evidente è l’indentazione significativa. Molti linguaggi delimitano i blocchi con parentesi o parole chiave; Python usa l’indentazione stessa.

La struttura visiva deve quindi corrispondere alla struttura logica. Un’indentazione errata non è soltanto brutta: cambia il significato o rende il codice invalido. Python trasforma una convenzione di leggibilità in una regola del linguaggio.

“Batteries included”

La libreria standard offre moduli per file, testo, date, protocolli di rete, formati dati, compressione, test, processi e molte altre attività.

La filosofia “batteries included” significa che un’installazione Python dovrebbe già contenere strumenti utili per problemi comuni senza richiedere subito dipendenze esterne.

Moduli, pacchetti e riuso

Un file Python può diventare un modulo importabile e i moduli possono essere organizzati in pacchetti. Questo modello semplice incoraggiò il riuso e facilitò la crescita di un ecosistema esterno.

Un progetto può iniziare come singolo file e strutturarsi gradualmente in moduli e pacchetti man mano che cresce.

Python 1.0, CNRI e i PEP

Python 1.0 fu pubblicato nel 1994. Nel 1995 van Rossum passò dal CWI alla Corporation for National Research Initiatives (CNRI) negli Stati Uniti, mentre la comunità continuava ad espandersi.

Nel 2000 furono introdotti i Python Enhancement Proposals (PEP), documenti che descrivono proposte importanti sul linguaggio, la libreria, i processi o la governance. I PEP conservano non solo le decisioni ma anche le motivazioni.

Tra i più noti, PEP 8 definisce convenzioni di stile e PEP 20, lo Zen of Python, include il principio “Readability counts”.

Python 2.0 e la Python Software Foundation

Python 2.0 uscì nell’ottobre 2000, introducendo tra l’altro list comprehension e una migliore gestione dei cicli di riferimenti.

Nel 2001 nacque la Python Software Foundation (PSF), organizzazione non profit che tutela la proprietà intellettuale legata a Python, sostiene la comunità e fornisce una base istituzionale indipendente da un singolo datore di lavoro o dal creatore.

PyPI e l’ecosistema dei pacchetti

Il Python Package Index (PyPI) divenne il repository centrale dei pacchetti. Insieme a pip, rese semplice installare framework Web, librerie scientifiche e strumenti di automazione.

Si creò un potente effetto rete: più pacchetti rendevano Python più utile e più utenti producevano nuovi pacchetti. Il successo portò anche complessità nella gestione di dipendenze, ambienti virtuali e standard di build.

Python sul Web

Django, reso open source nel 2005, offrì un framework completo per applicazioni Web. Flask diffuse un approccio più minimale e FastAPI uno stile moderno per le API con uso esteso delle annotazioni di tipo.

Python non prese il ruolo storico di JavaScript nel browser, ma divenne una delle principali scelte lato server.

Python 3: rompere consapevolmente la compatibilità

Il principale punto di svolta tecnico arrivò nel dicembre 2008 con Python 3.0. Gli sviluppatori corressero incoerenze storiche accettando alcune incompatibilità con Python 2.

print divenne una funzione e la gestione del testo fu riorganizzata intorno a Unicode. Il linguaggio risultò più coerente, ma la migrazione fu molto più lenta del previsto.

Python 2 contro Python 3

Per oltre un decennio le due generazioni coesistettero. Applicazioni e librerie rimasero su Python 2 perché la migrazione richiedeva tempo e comportava rischi.

Il supporto ufficiale di Python 2.7 terminò il 1º gennaio 2020. La transizione divenne una lezione classica sulla compatibilità: correggere un progetto può essere tecnicamente desiderabile ma molto costoso per un ecosistema maturo.

Calcolo scientifico

Il calcolo scientifico divenne uno dei principali motori di adozione. Python puro non è sempre rapido nei cicli numerici intensivi, ma è eccellente come livello di orchestrazione sopra librerie native ottimizzate.

NumPy offre array multidimensionali, SciPy algoritmi scientifici e Matplotlib visualizzazione. I kernel ad alte prestazioni possono essere scritti in C, C++ o Fortran mentre l’utente lavora con un’interfaccia Python leggibile.

Jupyter e calcolo interattivo

IPython e poi Jupyter permisero di combinare codice eseguibile, testo, equazioni e visualizzazioni nello stesso documento. Il modello si adatta particolarmente bene a ricerca, didattica e analisi esplorativa.

I notebook cambiarono anche il modo di comunicare il lavoro computazionale: risultati, spiegazioni, grafici e passaggi eseguibili possono viaggiare insieme.

pandas e data science

pandas introdusse strutture dati per tabelle e serie temporali. Con NumPy, Jupyter e le librerie di visualizzazione contribuì a rendere Python una piattaforma centrale per la data science.

Un analista può caricare dati, pulirli, aggregarli, visualizzarli e prepararli per un modello nello stesso ambiente.

Python e intelligenza artificiale

scikit-learn, TensorFlow e PyTorch hanno reso Python un’interfaccia dominante per molti workflow di machine learning e IA. Il calcolo pesante viene spesso eseguito da componenti native ottimizzate o GPU.

Python agisce come linguaggio di coordinamento. Tutorial, articoli scientifici, modelli, notebook e librerie hanno rafforzato ulteriormente l’effetto rete.

Come può essere veloce senza esserlo sempre

CPython esegue generalmente il codice Python puro più lentamente di C o C++ ottimizzati. Le applicazioni possono però delegare operazioni costose a librerie native. NumPy, per esempio, elabora milioni di valori senza eseguire un ciclo Python per ogni elemento.

Questa architettura combina produttività ad alto livello e prestazioni a basso livello dove servono.

Il GIL

CPython utilizza storicamente il Global Interpreter Lock (GIL). Semplifica alcuni aspetti della gestione della memoria ma limita l’esecuzione simultanea di bytecode Python da parte di più thread nello stesso processo.

Ciò non significa che Python non possa gestire concorrenza o parallelismo: può usare processi multipli, I/O asincrono ed estensioni native. Le versioni moderne stanno inoltre sviluppando modelli opzionali di esecuzione free-threaded.

Un linguaggio per formazione e automazione

La leggibilità rende Python particolarmente adatto all’insegnamento. Un principiante può stampare un valore, manipolare una lista o definire una funzione con poca sintassi.

La stessa lingua supporta però servizi Web professionali, pipeline di dati, software scientifico e automazione. Rinominare migliaia di file, chiamare API, trasformare JSON, automatizzare un deployment o generare un report può richiedere solo un breve script.

La governance dopo Guido van Rossum

Van Rossum fu a lungo definito Benevolent Dictator For Life (BDFL). Nel 2018 lasciò quel ruolo decisionale.

La comunità adottò un nuovo modello. PEP 13 definisce uno Steering Council eletto, responsabile delle principali questioni di governance e dell’evoluzione a lungo termine.

Un progetto nato come esperimento personale dispone così di istituzioni capaci di farlo evolvere oltre il suo creatore.

Perché Python ha avuto tanto successo

Il successo non dipende da una sola caratteristica. La leggibilità abbassa la barriera d’ingresso; l’estensibilità collega Python al codice nativo; la libreria standard fornisce una base comune; PyPI crea un enorme ecosistema; PEP e governance offrono un processo documentato.

La forza è la combinazione: un linguaggio accessibile che può iniziare in piccolo e crescere fino a grandi ecosistemi professionali e scientifici.

Domande frequenti

Chi ha creato Python?

Guido van Rossum iniziò a svilupparlo alla fine del 1989 al CWI e pubblicò la prima versione nel 1991.

Perché si chiama Python?

Il nome è un riferimento al gruppo comico britannico Monty Python, non al serpente.

Perché usa l’indentazione come sintassi?

Per fare in modo che la struttura visibile del codice corrisponda alla struttura logica, trasformando la leggibilità in una regola del linguaggio.

Cosa significa “batteries included”?

La libreria standard dovrebbe fornire già strumenti per molte attività comuni senza richiedere immediatamente pacchetti esterni.

Perché il passaggio da Python 2 a Python 3 fu difficile?

Python 3 corresse decisioni storiche con cambiamenti incompatibili. Applicazioni e librerie di un grande ecosistema dovettero quindi migrare nel corso di molti anni.

Chi decide oggi l’evoluzione di Python?

Lo sviluppo è comunitario e documentato tramite PEP. Uno Steering Council eletto secondo PEP 13 svolge le principali funzioni di governance.

Questo articolo ti è stato utile?

Fonti e riferimenti

  1. 1.Python - History and License
  2. 2.CWI - 25 Years of Python
  3. 3.PEP 13 - Python Language Governance

Raccolta

Linguaggi di programmazione

14 / 26

  1. 01Grace Hopper: dai primi compilatori a COBOL
  2. 02John Backus: FORTRAN, la notazione BNF e il rifiuto del codice macchina
  3. 03Dennis Ritchie: il linguaggio C al cuore di Unix
  4. 04FORTRAN: dimostrare che un compilatore può competere con l'assembly
  5. 05Il linguaggio C: rendere portabili i sistemi senza nascondere la macchina
  6. 06Niklaus Wirth: da Pascal a Oberon, progettare con la semplicità
  7. 07Bjarne Stroustrup: progettare C++ senza rinunciare alle prestazioni
  8. 08Pascal: imparare a programmare rendendo visibile la struttura
  9. 09C++: da C with Classes al C++ moderno
  10. 10Programmazione orientata agli oggetti: oggetti, messaggi e astrazioni riutilizzabili
  11. 11Guido van Rossum: creare Python per rendere il codice leggibile
  12. 12Brendan Eich: JavaScript, dal prototipo Netscape allo standard del Web
  13. 13James Gosling: l'ingegnere all'origine di Java
  14. 14Python: leggibilità, batterie incluse e un ecosistema globale
  15. 15Java: scrivere una volta, eseguire ovunque
  16. 16JavaScript: il linguaggio che ha reso interattivo il Web
  17. 17Ken Thompson: da Unix a Go, la semplicità come metodo
  18. 18John McCarthy: Lisp e l'idea di programmare con i simboli
  19. 19Alan Kay: Smalltalk e il computer come medium personale
  20. 20Barbara Liskov: l'astrazione che ha reso modulare il software
  21. 21Robin Milner: ML, dimostrazione assistita e linguaggi dell'interazione
  22. 22Brian Kernighan: AWK, Unix e l'arte di spiegare il codice
  23. 23Anders Hejlsberg: da Turbo Pascal a C# e TypeScript
  24. 24Larry Wall: Perl, il linguaggio che ha collegato gli strumenti di Internet
  25. 25Yukihiro Matsumoto: Ruby e la felicità del programmatore
  26. 26Rasmus Lerdorf: PHP e la democratizzazione del Web dinamico
StoriaStoria dell’informaticaPrincipiante

Java: scrivere una volta, eseguire ovunque

Dal progetto Green a OpenJDK: come Java ha costruito la portabilità attorno a bytecode, JVM e un ecosistema duraturo.

17 agosto 202610 min