Introduzione a Python

Introduzione al linguaggio di programmazione Python

Python base
introduzione
Comprenderai quali caratteristiche rendono Python il più diffuso linguaggio di programmazione al mondo
Autore

Stefano Caglio

Pubblicato

8 giugno 2023


Il logo ufficiale di Python

Probabilmente, se hai cercato qualche informazione sui linguaggi di programmazione, ti sarai imbattuto in questo nome: Python. In questo post capiremo cos’è Python e perché è così diffuso.

C’è da aver paura?

Partiamo dal nome: Python. In inglese significa pitone: devo dire che il nome non mi entusiasma troppo, dato che ho molta paura dei serpenti. Tuttavia il nome ha tutt’altra origine e si deve al creatore di Python, il programmatore olandese Guido van Rossum.

Ossessionato dalla scrittura di codice, come moltissimi programmatori, nelle vacanze di Natale del 1989 un po’ per noia e un po’ come passatempo iniziò - contento lui! - a “scrivere un interprete per un nuovo linguaggio di scripting”. Di sicuro a quel tempo non si aspettava un successo di portata mondiale: come accaduto anche in altri importanti casi nel mondo dell’informatica, strumenti, servizi o prodotti senza cui crediamo di non poter più vivere, sono stati concepiti in un garage o in un ufficio improvvisato1.

  • 1 Provate a guardare film come Jobs su Steve Jobs e Apple, The social network su Facebook, a cercare informazioni (e immagini) sugli inizi di Amazon o Paypal (co-fondata da Elon Musk) o a cercare le primissime versioni di siti nell’Internet Archive

  • Così, spesso, nomi che sembrano altisonanti o che incutono timore, come Python, hanno tutt’altra origine. Python è un tributo di Guido van Rossum ai Monty Python, un collettivo di comici inglesi attivo da fine anni ’60 a metà anni ’80 del secolo scorso che, per la loro comicità e satira pungente, sono stati molto amati dai giovani - e, per fortuna, svitati - programmatori degli anni ’80.

    Giusto per farti capire l’influenza dei Monty Python sul mondo dell’informatica: lo sapevi che il termine spam per indicare posta indesiderata è dovuto proprio a loro? In realtà spam è l’abbreviazione di SPiced hAM (letteralmente prosciutto speziato), una carne in scatola a base di carne di maiale e spezie che era così diffusa a partire dal secondo dopoguerra in Inghilterra che i Monty Python l’hanno “decantata” in un loro famosissimo sketch, di cui possiamo vedere anche il video, in cui questo spam viene proposto da una cameriera in modo molto insistente in praticamente tutti i piatti proposti in un ristorante. Da qui l’idea dello spam come qualcosa di imposto, quasi inevitabile e molto fastidioso.

    Quindi, riguardo il nome Python, altro che aver paura: è tutto da ridere!

    La filosofia

    Python è nato in un periodo molto importante per l’informatica. Ok, a ben pensarci, data la giovane età di questa scienza, ogni momento è importante. Basti pensare a quello che accade oggi, con l’intelligenza artificiale (AI, Artificial Intelligence) che fa passi da gigante in tempi brevissimi se paragonata ad altri campi dell’informatica stessa o di altre scienze.

    Periodo molto importante, dicevo: proprio nel 1989 Tim Barners-Lee ha “inventato” al CERN di Ginevra il World Wide Web (WWW), dando vita alla tecnologia che utilizziamo continuamente.

    L’idea della condivisione delle informazioni era proprio il motivo per cui è nato il WWW: il CERN è uno dei laboratori di fisica delle particelle più importanti al mondo e la veloce raccolta e scambio di dati e informazioni è di vitale importanza per la ricerca.
    Ecco, non credo sia un caso che la condivisione delle informazioni fosse, e sia ancora oggi, il cardine di un movimento che si stava sviluppando ed affermando proprio in quegli anni: il movimento open source. Nelle sue varie declinazioni2, si contrappone alla visione proprietaria del software, tipica dei colossi come Microsoft, Apple o Google, per mettere in evidenza tutti i benefici generati dal lavoro di una comunità di sviluppatori, dalla trasparenza e dalla libertà che garantiscono un bene comune.

  • 2 Penso principalmente alla Open Source Initiative e alla Free Software Foundation

  • Guido van Rossum viveva in questa realtà effervescente e creativa e lavorava come programmatore per il centro di ricerca di matematica e informatica teorica olandese. In particolare lavorava sul sistema operativo Unix. Dobbiamo pensare che all’epoca non esistevano moltissime cose che oggi diamo per scontate: Internet, i cellulari, iOS, Android… Unix era IL sistema operativo per eccellenza (giusto per avere un dato di riferimento, Windows 1 venne rilasciata nel 1985) ma era un software proprietario, sviluppato negli Stati Uniti da AT&T e Bell Laboratories dal 1969. Essendo usato su praticamente tutti i computer dell’epoca queste aziende detenevano tutto il mercato: erano dei monopolisti. A causa di questa loro posizione, per ragioni “politiche” dovettero distribuire il codice sorgente di Unix gratuitamente alle università e ai centri di ricerca per fini di studio. Questo portò ad hackerare Unix in ogni modo possibile per migliorarlo o creare nuove funzionalità. Anche se oggi abbiamo una percezione negativa del termine, ai tempi veniva considerato come sinonimo di modificare e migliorare con intelligenza e creatività qualcosa di cui si è capito il funzionamento.

    Non stupisce, quindi, che Guido van Rossum disse:

    Decisi di scrivere un interprete per un nuovo linguaggio di scripting a cui avrei pensato dopo: un discendente dell’ABC, che sarebbe dovuto appartenere agli hacker di Unix.

    Chiaramente gli hacker di Unix erano i ragazzi più in gamba per fare questo genere di cose. Se Python è stato pensato come un dono per questa comunità, sarebbe dovuto essere qualcosa di eccezionale. Così è stato.

    Il linguaggio più usato

    Molto probabilmente neanche Van Rossum se lo aspettava: dopo 34 anni dalla sua nascita, ormai Python è da diversi anni il linguaggio di programmazione più usato al mondo.

    Chiaramente c’è chi lo ama, chi lo odia e chi ne è indifferente. È un dato di fatto che, attualmente, sia il più utilizzato. Non lo dico io ma fonti autorevoli (visita il link per vedere i dati!):

    • PYPL (PopularitY of Programming Language): l’indice di popolarità dei linguaggi di programmazione è creato analizzando quante volte vengono cercati i tutorial formativi per un determinato linguaggio;
    • TIOBE Index: è un indicatore della popolarità dei linguaggi di programmazione, aggiornato mensilmente. Le valutazioni si basano sul numero di ingegneri qualificati in tutto il mondo, corsi e fornitori di terze parti. Per calcolare le valutazioni vengono utilizzati i principali motori di ricerca quali Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube e Baidu;
    • Forbes, uno dei magazine più famosi al mondo “su classifiche, cultura economica, leadership imprenditoriale, innovazione e lifestyle”, come si autodefinisce.

    Insomma, non male per un lavoretto nato fra una fetta di panettone e una di cotechino (ammetto di non avere la più pallida idea dei gusti natalizi degli olandesi, ma ci siamo capiti!).

    E, diciamocelo, chi non vorrebbe essere nominato, grazie ad un “passatempo” (averne di passatempo così!), BDFL Benevolent Dictator for Life - Benevolo Dittatore a Vita?

    I motivi del successo

    Nel 1999, dieci anni dopo il famoso Natale, Van Rossum presentò una proposta al DARPA chiamata Computer programming for everybody (che posso tradurre “Programmazione per tutti”, un testo fondamentale per l’insegnamento dell’informatica e che ti invito a leggere per capire quanto Van Rossum fosse avanti!) in cui definì i suoi obiettivi per Python:

    • un linguaggio semplice, intuitivo e potente quanto i suoi maggiori avversari;
    • un codice facilmente comprensibile, come l’inglese parlato;
    • ottimo per i compiti di tutti i giorni, poiché in grado di consentire tempi di sviluppo brevi;
    • codice sorgente aperto, in modo che ognuno avrebbe potuto partecipare al suo sviluppo.

    Un linguaggio semplice e intuitivo

    Uno dei principali ostacoli di chi deve imparare a programmare è che non solo deve imparare un nuovo modo di pensare, apprendere un nuova capacità di risoluzione dei problemi legata all’implementazione del processo risolutivo su di un elaboratore (sempre semplificando e con tutte le accortezze del caso, oggi è di moda chiamarla intellingenza computazionale), ma deve scegliere e imparare un linguaggio di programmazione.

    I linguaggi di programmazione sono moltissimi e ognuno ha le proprie peculiarità. Se ti stai chiedendo perché ne esistono molti, prova a chiederti anche perché, per esempio, i popoli eskimesi hanno molte più parole di noi per descrivere il concetto neve: semplicemente, hanno una necessità maggiore di descriverla e risolvere dei problemi relativi ad essa (anche se i termini sembra non sembrano poi così tanti come si era -erroneamente - creduto).

    Ogni linguaggio di programmazione nasce per motivi e obiettivi specifici. Esistono linguaggi dedicati alla gestione dei database come SQL, linguaggi dedicati allo sviluppo di applicazioni mobili come Kotlin o Swift e tantissime altre categorie.

    Python nasce con l’intento di essere semplice e intuitivo: queste significa che per imparare ad utilizzarlo basta poco tempo!

    Per esempio, chi ha provato a programmare in C si ricorda benissimo che, fra le altre cose: - devono essere utilizzate le parentesi graffe per identificare blocchi di codice: provate a dimenticarne qualcuna in condizioni nidificate e ringrazierete il compilatore per l’aiuto nella ricerca dell’errore; - ogni comando si deve chiudere con un punto e virgola; - devo sempre dichiarare tipo e nome di variabile.

    In Python: - le parentesi graffe hanno un significato differente rispetto a C: per raggruppare del codice bastano dei rientri (le indentazioni); - non si mette il punto e virgola. Semplicemente, la scrittura di un’istruzione è conclusa andando a capo; - non bisogna dichiarare tipo e nome delle variabili che si utilizzeranno all’interno di un programma.

    Un codice facilmente comprensibile

    Tutto questo permette di avere un codice molto ben leggibile e comprensibile! Utilizzare le indentazioni ci obbliga ad essere ordinati, aumentando la leggibilità del codice.

    Inoltre i comandi, le funzioni, sono scritte in inglese. A patto di masticare un po’ di inglese (che male non fa se vorrai continuare negli studi! All’università molti testi, e con piacere ho scoperto anche molti corsi, sono in inglese che, di fatto, è la lingua franca della scienza e della comunicazione globale) se leggi un programma scritto in Python risulta essere molto più vicino al nostro linguaggio naturale rispetto un programma in C.

    Giusto per darti un’idea, puoi vedere la differenza fra il codice scritto in Python e in C per un programma che chiede in input da tastiera cinque numeri interi e ne fornisce la somma a video.

    N = 5
    somma = 0
    for i in range(5):
      somma = somma + int(input("Inserisci un numero intero: "))
    print("La somma dei numeri inseriti è:", somma)
    #include <stdio.h>
    
    int main(void) {
      int i, N = 5, somma = 0, numero;
      for (i=0; i<5; ++i)
        {
          printf("Inserisci un numero intero: ");    
          scanf("%d", &numero);
          somma = somma + numero;
        }
      printf("La somma dei numeri inseriti è: %d", somma);
      return 0;
    }

    Come vedi Python è molto più sintetico e leggibile!

    Se vuoi provare questi codici, segui questi link per il codice in Python e il codice in C.

    Permette tempi di sviluppo brevi

    Poter formare qualcuno in tempi brevi è importante anche per poter sviluppare del software in tempi brevi.

    La velocità nella realizzazione di applicazioni non è data solo da questo aspetto, ma anche dal fatto che Python è spesso considerato come un linguaggio di programmazione generico. Questo significa che Python può essere utilizzato per sviluppare applicazione per i più svariati settori o campi.

    Che si tratti di sviluppare applicazioni web, per l’analisi dei dati, l’apprendimento automatico, la data science, l’ingegneria di qualsiasi tipo, la finanza, l’intelligenza artificiale, molte fra le più importanti aziende utilizzano Python. La NASA, Facebook, Google, Netflix, Instagram e tanti altri basano gran parte della loro attività su codice scritto in Python.

    Il codice sorgente è aperto

    Uno dei segreti del successo di Python è proprio questo: che è stato rilasciato con una licenza open source. Questo vuol dire che tutto il codice sorgente è a disposizione della comunità che così lo può usare, controllare, migliorare ed estenderne le capacità. Quindi si, si tratta di software gratuito, che è una accezione del free in inglese. L’altra è quella di software libero. Libero di circolare ed essere modificato, migliorato, analizzato.

    Se tutto questo da un lato può sembrare strano dato che siamo abituati a software proprietario, e quindi a pagamento, come Windows o la suite Office, sono proprio tutte queste libertà che hanno permesso di avere una comunità eterogenea e creativa che ha letteralmente costruito il successo di Python.

    Il software aperto è tutto questo: da follia di qualche visionario negli anni ’70 e ’80, è diventata una filosofia e un caso di successo nel mondo di oggi a dispetto dei detrattori.

    Come ci tocca tutto questo? Di sicuro è importante notare che la comunità di sviluppatori Python è una delle comunità di programmatori più attive. Questo significa che:

    • se hai un problema puoi ottenere supporto immediato da sviluppatori di tutti i livelli;
    • hai a disposizione una grandissima quantità di materiali formativi. Anche questo documento che stai leggendo, nel suo piccolo, fa proprio questo;
    • puoi utilizzare centinaia di librerie scritte per risolvere qualsiasi tipo di problema. In questo modo, molto probabilmente non dovrai iniziare da zero a scrivere codice! Qualcuno ha già fatto parte del lavoro per te, letteralmente!

    Rimaniamo in contatto!

    Se desideri essere aggiornato, lascia qui sotto la tua mail. Ogni tanto (solo quando ne varrà la pena, lo prometto) ti invierò una newsletter con le novità più importanti. Buona lettura!