post

Python it:Introduzione

Contents

Introduzione

Python è uno dei rari linguaggi che può giustamente definirsi semplice e al tempo stesso potente. È sorprendente quanto sia più profittevole concentrarsi sulla soluzione di un problema piuttosto che sulla sintassi e sulla struttura del linguaggio impiegato per trattarlo!

L’introduzione ufficiale al Python recita:

Python è un linguaggio di programmazione potente e di facile apprendimento. Utilizza efficienti strutture dati di alto livello e un semplice ma efficace approccio alla programmazione orientata agli oggetti. L’elegante sintassi di Python e la tipizzazione dinamica, unite alla sua natura di linguaggio interpretato, lo rendono ideale per lo scripting e lo sviluppo rapido di applicazioni in molte aree diverse e sulla maggior parte delle piattaforme.

Nella sezione seguente verranno discusse in dettaglio la maggior parte di queste caratteristiche.

Note
Il creatore del linguaggio Python, Guido van Rossum, ha scelto questo nome dopo aver assistito allo spettacolo della BBC “Monty Python’s Flying Circus “. Eppure non ama assolutamente vedere serpenti che cacciano piccoli animali per cibo e che li uccidono arrotolandosi intorno ad essi per stritolarli.

Caratteristiche del Python

Semplice
Python è un linguaggio minimalista semplice. Leggere un buon programma scritto in Python è molto simile a leggere un testo in inglese (stretto). La natura pseudo-codice del Python è una delle sue peculiarità più potenti. Permette di concentrarsi sulla soluzione di un problema piuttosto che sul linguaggio stesso.
Semplice da imparare
Come si vedrà, Python ha un fattore di impatto iniziale estremamente positivo, nonché una sintassi semplicissima, come già menzionato.
Free e Open Source
Python è un esempio di FLOSS (Free/Libré and Open Source Software). In parole povere, è possibile distribuire copie di questo software, accedere al suo codice sorgente, modificarlo, prelevare segmenti di codice e usarli in altri programmi free. FLOSS si basa sul principio della libera condivisione delle conoscenze all’interno di una comunità. Questa è una delle ragioni che rendono Python così appetibile: dalla sua creazione è stato costantemente aggiornato da una comunità che cerca solo di renderlo migliore.
Linguaggio ad alto livello
Quando si scrive un programma in Python, non sorge mai la necessità di doversi occupare della gestione delle risorse a basso livello (es. controllo della memoria usata dal programma, ecc…).
Portabile
Grazie alla sua natura open-source, Python ha il porting (ciò è stato modificato per poter girare) su molte piattaforme. Tutti i programmi scritti in Python possono girare su una di queste piattaforme senza modifica alcuna, eccezion fatta per il codice scritto con chiamate (o specifiche) strettamente dipendenti dal sistema.
Python può essere usato su Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE e addirittura su PocketPC!
Interpretato
Questo punto richiede qualche chiarimento.
Un programma scritto in un linguaggio compilato come C o C++ il codice sorgente viene convertito in un linguaggio comprensibile al computer (codice binario fatto di sequenze 0 e 1) da un compilatore cui vengono passate opportune opzioni. Quando mette in esecuzione il programma, il linker/loader si occupa di leggere il programma dall’hard disk, caricarlo in memoria e di farlo partire.
Python, invece, non ha bisogno di generare codice binario. Si esegue direttamente il programma richiamando il relativo codice sorgente. Python converte internamente il sorgente in una forma intermedia chiamata bytecode per poi tradurla in linguaggio nativo per l’esecuzione. Tutto ciò semplifica molto l’uso di Python, dal momento che non è più necessario compilare il programma, assicurarsi che le eventuali librerie siano accessibili e caricate correttamente, ecc… ecc… Inoltre i programmi Python sono altamente portabili: è sufficiente trasferirli da un computer all’altro per poterli usare!
Orientato agli oggetti
Python supporta sia la programmazione procedurale che quella orientata agli oggetti. Nei linguaggi di tipo procedurale, il programma viene costruito intorno a procedure o funzioni che altro non sono che segmenti di programma riutilizzabili. Nei linguaggi orientati agli oggetti, il programma viene costruito intorno a oggetti che combinano dati e funzionalità. L’approccio OOP impiegato dal Python è potente e semplice allo stesso tempo, soprattutto se confrontato con quello impiegato dai grandi linguaggi quali C++ e Java.
Estensibile
Se sorge la necessità di avere un pezzo di codice che sia eseguito velocemente dalla macchina o che il suo algoritmo non sia accessibile, è possibile scrivere quel codice in C o C++ ed accedervi comodamente dal programma in Python.

Incapsultato
Python può essere incluso nei programmi C/C++ per aggiungere funzionalità di scripting ai programmi degli utenti.
Librerie estensive
La libreria standard distribuita con Python è davvero enorme. Permette di generare documentazione, testare moduli, e fare un’infinità di operazioni tra cui gestire espressioni regolari, threads, database, web browser, CGI, ftp, e-mail, XML,XML-RPC, HTML, files WAV, crittografia, GUI (interfaccia utente grafica), Tk,ed altre estensioni specifiche del sistema. Tutto questo è disponibile laddove è stato installato Python: questa è la filosofia del motto che lo contraddistingue ‘Python con batterie incluse’!
Oltre alla libreria standard, esistono altre ottime librerie, come ad esempio: wxPython , Twisted, Python Imaging Library e molte altre.

Python è sicuramente in linguaggio potente e stimolante. Ha la giusta combinazione di prestazioni e caratteristiche che permettono di scrivere programmi con facilità e divertimento.

Perché non Perl?

Per chi non lo sapesse, Perl è un altro linguaggio di scripting, interpretato, open source e molto diffuso.

Chiunque abbia mai provato a scrivere un grosso programma in Perl, conosce giá la risposta! In altre parole, i programmi scritti in Perl sono semplici ed efficienti quando sono corti, ma diventano facilmente non gestibili quando il codice si allunga: lo dico per esperienza avendolo usato in alcuni grossi progetti per Yahoo!

In confronto al Perl, i programmi scritti in Python sono certamente più semplici, chiari, facili da scrivere ed anche più comprensibili e manutenibili. Apprezzo comunque il Perl e lo uso quotidianamente in varie occasioni, ma ogni volta che inizio la scrittura di un programma devo fare uno sforzo perché, da quanto è divenuto familiare, sono portato a pensare sempre in termini di Python. Perl ha subito notevoli modificazioni e cambiamenti nel corso del tempo, che avrebbero dovuto dare una nuova vita al linguaggio. Purtroppo il nuovo Perl 6 non sembra aver apportato alcun sostanziale e rivoluzionario miglioramento rispetto al precedente.

Il solo ed unico vantaggio significativo che posso riconoscere al Perl è la disponibilità della libreria CPAN la Comprehensive Perl Archive Network). Come suggerisce il nome, CPAN è un’enorme collezione di moduli Perl disponibili per ogni esigenza di programmazione. La ragione per cui Perl ha un numero superiore di moduli rispetto a Python è che il primo è ben più datato. Sembra comunque che questa lacuna verrà presto riempita vista la crescita del Python Package Index.

Perché non Ruby?

Per chi non lo conoscesse ancora, Ruby è un altro popolare linguaggio interpretato open source.

Se invece lo si conosce e lo si usa, raccomando di continuare a farlo.

Per coloro che invece non lo hanno usato e stanno esaminando se imparare Python o Ruby, la raccomandazione è di scegliere Python semplicemente per la facilità di comprensione del linguaggio. Io personalmente trovo difficile entrare nella mentalità di Ruby, benché le molte persone che lo capiscono elogino la bellezza del linguaggio. Sfortunatamente non sono così fortunato.

Cosa ne dicono i programmatori

Troverete interessante leggere cosa pensano di Python certi personaggi di spicco (come l’hacker ESR):

  • Bruce Eckel autore dei famosi testi ‘Thinking in Java’ e ‘Thinking in C++’, dice che nessun linguaggio lo ha reso tanto produttivo quanto Python. Aggiunge anche che probabilmente è anche l’unico linguaggio che facilita realmente la vita del programmatore. Leggere l’intervista completa per maggiori dettagli.
  • Peter Norvig autore di Lisp e Director of Search Quality at Google (si ringrazia Guido van Rossum per la precisazione). Dice che Python è sempre stato parte integrante di Google. Si può verificare questa affermazione consultando la pagina Google Jobs che elenca la conoscenza di Python tra i requisiti richiesti per candidarsi come ingegneri informatici.

Python 3.0

Python 3.0, conosciuta anche come Python 3000 o Py3K, è la nuova versione del linguaggio di imminente rilascio.

La ragione principale per una nuova versione di Python è rimuovere tutti i piccoli problemi che si sono accumulati nel corso degli anni per rendere il linguaggio ancora più pulito.

Il codice Python 2.x può venire convertito alla versione 3.x con una
utility che aiuterà nell’intero processo.

Maggiori dettagli si possono trovare: