Se in qualche occasione avete scritto uno script di shell di grosse dimensioni, è probabile che la sensazione seguente vi sia familiare. Vorreste tanto aggiungere ancora un'altra funzione, ma è già così lento, così grosso, e così complicato; oppure la funzionalità che avete in mente necessita di una chiamata di sistema o di un'altra funzione accessibile solo da C ...Di solito il problema in esame non è abbastanza rilevante da giustificare una riscrittura dello script in C; magari richiede stringhe di lunghezza variabile o altri tipi di dati (come liste ordinate di nomi di file) che sono semplici da gestire dalla shell ma richiedono molto lavoro per essere implementati in C, o forse non avete familiarità sufficiente col C.
Un'altra situazione: forse dovete lavorare con parecchie librerie C, e la solita procedura C di scrittura/compilazione/test/ricompilazione è troppo lenta. Avete la necessità di sviluppare i programmi in tempi più brevi. Magari avete scritto un programma che potrebbe usare un linguaggio di estensione, e non volete stare a progettare un linguaggio, scrivere e testare un interprete per esso e poi congiungerlo alla vostra applicazione.
In casi simili, Python potrebbe essere quello che fa per voi. Python è semplice da usare ma è un vero linguaggio di programmazione, che offre molte più strutture e supporto per programmi di grandi dimensioni che i linguaggi di shell. D'altra parte, offre anche il controllo degli errori del C e, essendo un linguaggio di altissimo livello, ha tipi di dato ``built-in'' (NdT: nativi) di alto livello, come array flessibili e dizionari, che prenderebbero molto tempo per essere implementati in maniera efficiente in C. Grazie ai suoi tipi di dati di applicazione più generale, Python è applicabile a un insieme di problemi molto più vasto di Awk o anche Perl, cionondimeno molte cose sono semplici in Python almeno quanto in questi linguaggi.
Python permette di suddividere i vostri programmi in moduli che possono essere riutilizzati in altri programmi Python. È accompagnato da un'ampia raccolta di moduli standard che potete usare come basi per i vostri programmi, o come esempi utili nell'apprendimento della programmazione in Python. Ci sono anche moduli built-in che forniscono il supporto per cose come l'I/O su file, chiamate di sistema, socket e anche interfacce a toolkit GUI (Interfaccia Utente Grafica) come Tk.
Python è un linguaggio interpretato, e questo può far risparmiare molto tempo durante lo sviluppo del programma, poiché non sono necessari compilazione e linking. L'interprete può essere utilizzato interattivamente, il che rende semplice fare esperimenti con le funzionalità del linguaggio, scrivere programmi usa-e-getta o testare funzioni durante lo sviluppo bottom-up di programmi. È anche un'utile calcolatrice.
Python consente di scrivere programmi molto compatti e di facile lettura. Tipicamente i programmi scritti in Python sono molto più brevi degli equivalenti in C o C++, per numerose ragioni:
Python è estendibile: se sapete programmare in C è facile aggiungere all'interprete nuove funzioni o moduli built-in, per eseguire operazioni critiche alla massima velocità o per creare link a programmi Python delle librerie che possono essere disponibili solo in forma di file binari (ad esempio librerie grafiche proprietarie). Quando sarete veramente smaliziati, potrete creare link dall'interprete Python a un'applicazione scritta in C e usarlo come linguaggio di estensione o di comando per tale applicazione.
A proposito, l'origine del nome deriva dallo show televisivo della BBC ``Monty Python's Flying Circus'' e non ha niente a che fare con i pericolosi rettili omonimi. Fare riferimento alle caratteristiche burle dei Monty Python nella documentazione non solo è permesso, è incoraggiato!
Ora che la vostra curiosità nei confronti di Python è stata stimolata, vorrete esaminarlo in maggior dettaglio. Dato che il modo migliore di imparare un linguaggio è usarlo, siete invitati a farlo.
Nel prossimo capitolo verranno spiegati i meccanismi per utilizzare l'interprete. Si tratta di informazioni abbastanza banali, ma essenziali per lavorare sugli esempi che verranno mostrati più avanti.
Il resto del tutorial introdurrà varie caratteristiche e funzionalità del linguaggio (e sistema) Python attraverso esempi, iniziando con semplici espressioni, istruzioni e tipi di dati, passando per funzioni e moduli, per finire col toccare concetti avanzati come le eccezioni e le classi definite dall'utente.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.