Ho scritto questa guida introduttiva perché sembra che sul Web ci sia molto poco che possa essere di aiuto al vero principiante della programmazione. D'altro canto la rete Internet ed il Web stimolano l'interesse per i computer e questo interesse porta naturalmente a desiderare di avere le cose "sotto controllo", cioè a imparare a programmare.
Perché io? Io sono un programmatore di professione arrivato alla programmazione da una formazione come ingegnere elettronico. Ho usato (e continuo ad usare) parecchi linguaggi di programmazione e non ho alcun interesse personale nel promuovere un particolare programma o linguaggio. Dimenticavo: sembra che nessuno ci abbia pensato prima!
Per quanto possibile parlerò della teoria di base della programmazione dei computer: di cosa si tratta, un po' di storia e le tecniche fondamentali per la soluzione dei problemi. Non parlerò di tecniche avanzate o dei dettagli relativi ad alcun linguaggio in particolare, ma utilizzerò diversi linguaggi perché ritengo che sia importante capire che linguaggi differenti sono adatti a fare bene cose differenti. Ciò detto, gran parte del corso si riferisce ad un linguaggio chiamato Python.
In altre parole: cosa mi aspetto che il lettore sappia già?
Mi aspetto che il lettore di questa guida sia un utilizzatore esperto di un computer, MS DOS, Windows o Unix, sebbene altri possano essere altrettanto adatti. Mi aspetto anche che comprenda i concetti della matematica di base come ad esempio le coordinate cartesiane, gli insiemi e l'algebra elementare. Questi concetti sono fondamentali negli ambienti di programmazione odierni e molti concetti della programmazione sono basati su queste idee.
Non parlerò certamente di argomenti come la creazione o la copia di files, l'installazione di software o l'organizzazione dei file sul disco fisso. Sinceramente, se avete bisogno di nozioni di questo tipo, probabilmente non siete ancora allo stadio di poter programmare, per quanto possiate desiderarlo. Procuratevi una guida introduttiva al vostro computer, potrete riprendere questi argomenti quando sarete a vostro agio con i concetti elementari.
Python è un linguaggio assai gradevole da imparare. Ha una sintassi semplice e incorpora funzionalità molto potenti. Consente di usare diversi stili di programmazione, dai più semplici alle moderne tecniche di programmazione ad oggetti. Gira su numerose piattaforme: Unix/Linux, MS Windows, Macintosh ecc. Esiste anche una comunità di utilizzatori assai bendisposta ad aiutare. Tutte queste sono caratteristiche importanti per un linguaggio da principianti.
Python, comunque, non è solo un linguaggio per principianti. Con l'aumentare dell'esperienza potrete continuare ad usare Python sia come linguaggio con cui realizzare applicazioni complete che per realizzare rapidamente prototipi funzionanti di applicazioni che successivamente verranno riscritte in tutto o in parte in altri linguaggi. Ci sono alcuni problemi per cui Python è poco adatto, ma questi sono assai pochi e di tipo molto particolare.
Per alcuni dei primi esempi userò anche il BASIC e presenterò come alternativa il Tcl. Perché questo? La maggior parte dei navigatori del Web che sono anche principianti utilizzano PC con il sistema operativo Microsoft Windows ed esiste una versione di BASIC (QBASIC) già disponibile sul CD-ROM di Windows (sia NT che 95/98). Tcl invece viene distribuito insieme a Python, almeno fino alla versione 1.5.2 (in effetti avete due linguaggi al prezzo di uno e soprattutto il prezzo in questo caso è zero!) Dalla versione 2.0 viene fornita solo una installazione minimale di Tcl quindi, se vorrete provare gli esempi, dovrete procurarvi la versione ufficiale dal sito Scriptics.
Ci sono altri siti in cui si trovano tutorial di base per altri linguaggi. Ci sono anche molti testi introduttivi per coloro che conoscono già la programmazione ma desiderano apprendere un nuovo linguaggio. Questo paragrafo contiene alcuni riferimenti che ritengo degni di nota.
Ringrazio Ferdinando Ferranti e Riccardo Fabris per aver dedicato un po' del loro tempo alla revisione della mia traduzione segnalandomi numerosi refusi e suggerendomi miglioramenti e chiarimenti che hanno contribuito alla qualita di questa traduzione in modo non trascurabile.
Luca Fini Gennaio 2003.
Se avete domande o suggerimenti relativi a questa pagina
mandate un e-mail all'autore:
alan.gauld@yahoo.co.uk
o al traduttore italiano:
lfini@arcetri.astro.it