Capitolo 1 Introduzione

“One book to rule them all.”

— Sauron

Caro studente, questo libro è pensato per te che stai approcciando per la prima volta il mondo della programmazione.

Ho deciso di scrivere questo libro digitale perché nel tempo mi sono accorto che molti libri di testo, nel giusto tentativo di soddisfare le esigenze di più docenti possibile, tendono a includere tantissimi argomenti, ma non avendo a disposizione pagine infinite, alcuni di questi argomenti sono purtroppo trattati superficialmente. Inoltre, la maggior parte dei libri di testo, un po’ per questioni di spazio e un po’ perché anchilosati dai rigidi programmi ministeriali e dalla “resistenza” dei docenti al cambiamento, si focalizza su un unico linguaggio di programmazione, spesso C++ e Java. Vengono invece quasi del tutto ignorati i linguaggi che secondo sono a mio avviso i più utili dal punto di vista didattico: Python e Swift. Per il primo, c’è negli ultimi anni qualche timido accenno nei testi scolastici (segnalo, ad esempio, “Linguaggio Python,” ed. Atlas). Il secondo, essendo strettamente legato all’ecosistema Apple, è completamente ignorato.

Sono convinto che gli studenti non debbano focalizzarsi troppo su un linguaggio, irrigidendo e confinando il loro apprendimento. Finché la mente è giovane e flessibile, dovrebbero allenarsi il più possibile a cambiare contesto e linguaggio, perché nessuno di noi sa cosa ci riserverà il futuro lavorativo e in quale linguaggio ci troveremo a programmare. L’obiettivo di un corso di studi in Informatica dovrebbe essere quello di insegnare i meccanismi fondamentali che stanno alla base della logica della programmazione, piuttosto che questo o quel linguaggio.

Il tentativo di questo manuale è quindi quello di trovare un filo conduttore nella narrazione della programmazione, includendo i quattro linguaggi che ritengo più importanti per uno studente che inizia a scrivere codice: Python, Swift, Java e C++. I primi due per la loro semplicità di utilizzo e le potenzialità intrinseche della sintassi dei nuovi linguaggi di programmazione. I secondi perché rappresentano tutt’oggi lo standard accademico e di insegnamento. Il PYPL1 conferma queste scelte: Python, nel momento in cui scrivo, è il linguaggio più popolare (28,52%), seguito al secondo posto da Java (18,2%), C++ al quarto posto (7,62%) e Swift al nono posto (2%). Questi quattro linguaggi messi assieme coprono più del 50% del totale e rappresentano quindi un’ottima base per qualunque aspirante programmatore.

Questo libro non pretende di sostituirsi ai libri di testo scolastici. In parte ne riprenderà la struttura e la logica, cercando però di arricchire il contenuto con tutte le peculiarità di uno strumento digitale. È uno strumento gratuito ed open source e, come ogni software che si rispetti, muterà nel tempo: verranno rilasciati aggiornamenti, correzioni di bug e aggiunte di nuove feature. Il codice sorgente è disponibile su GitHub e chiunque può aiutare nello sviluppo con un’apposita pull request.

Anche se le lezioni sono tenute, a seconda del corso, in un particolare linguaggio, sei invitato ad esplorare tutti quelli proposti in questo testo, a conoscerli, sperimentarli e farli tuoi, perché solo in questo modo, così come è la bacchetta a scegliere il mago, anche il linguaggio possa scegliere il suo apprendista.


  1. PopularitY of Programming Language, Indice di popolarità dei linguaggi di programmazione↩︎