Percorso: ilMac.net > Scuola di Mac > Spiegazioni > Python FAQ


Python FAQ

Le risposte alle domande più frequenti


Python è un linguaggio di programmazione Open Source che lentamente anche in Italia si sta facendo strada. Queste FAQ (Frequently Asked Questions, cioé Risposte alle Domande più Frequenti), hanno lo scopo di indurre chi legge a scoprirlo e magari a iniziare a programmare, eliminando dubbi, oppure svelandone gli aspetti più interessanti e stimolanti. Che sono decisamente molti.
Buona lettura!

Che cos'è Python?

Python è un linguaggio di programmazione Open Source orientato agli oggetti, facile da imparare e da usare, ma potente, portabile (cioé gira su tutte le piattaforme più diffuse), capace inoltre di supportare concetti quali il polimorfismo, l'overloading, e l'ereditarietà multipla. Spesso viene spesso associato a linguaggi quali Perl, Tcl oppure Java, ma rispetto a questi ha dalla sua un approccio alla programmazione più semplice e immediato. E' stato creato da Guido Van Rossum (olandese), nel 1989, e deve il suo nome alla celebre serie televisiva: 'Monty Python's Flying Circus'.

Non ho mai programmato prima d'ora: Python può essere il giusto linguaggio di programmazione per iniziare?

Assolutamente sì. Nonostante la potenza che è capace di dispiegare, Python è davvero facile da imparare, oltre ad essere gratuito. Una delle sue caratteristiche è la sintassi pulita e comprensibile, che lo rendono un linguaggio perfetto non solo per avventurarsi nel mondo della programmazione; ma ne fanno anche un impareggiabile strumento per imparare a pensare da programmatore.

Quali sono le risorse online su Python?

Tanto per cominciare sul nostro sito a questo indirizzo , vi è la prima puntata di un corso su Python. Poi, il sito italiano , e ovviamente quello in inglese, che è quello di riferimento per l'intera comunità Python a livello mondiale. Questi ultimi inoltre, offrono forum e mailing list dove i principianti possono trovare aiuto e consigli da parte della vasta comunità Python.

Ci sono libri disponibili in italiano?

Qui tocchiamo una nota dolente, purtroppo. Al momento l'unico volume disponibile è 'Programmare con Python' edito da Hoepli Informatica , di cui abbiamo scritto anche la recensione. Questa 'povertà' è un vero peccato, dal momento che Alex Martelli, italiano, è uno dei massimi esperti a livello mondiale di Python, ed è autore di diversi libri rintracciabili su Amazon U.S.A..

Sono un programmatore: perché dovrei essere interessato a Python?

Python è stato concepito (e continua ad essere aggiornato e migliorato costantemente conservando intatta questa sua virtù), per ottenere grandi risultati mantenendo una sostanziale semplicità di approccio alle esigenze da soddisfare. In pratica, questo significa ad esempio che il codice prodotto da Python è in media 1/3 più compatto dell'analogo codice scritto in Java o C. Conseguenza immediata per chi programma: se c'è meno da digitare, c'è meno da correggere e da mantenere, e c'è più tempo per fare altre cose.
Python ha dalla sua anche una ricca collezione di librerie che coprono le esigenze più disparate: protocolli Internet, chiamate di sistema, interfacce grafiche, database, espressioni regolari e molto, molto altro ancora.
E' possibile estendere Python sia in C che in C++. E' possibile interfacciarlo ad esempio con le librerie C esistenti. Da ricordare inoltre che essendo Open Source i suoi sorgenti sono scaricabili liberamente. Sapere che (se si ha tempo e voglia), ci si può sporcare le mani mettendo le mani nel codice senza alcuna restrizione di sorta, è senz'altro un'ottima cosa. La libertà di cui gode Python inoltre, permette a tanti sviluppatori di creare utility di terze parti per supportare esigenze particolari. Quindi troverete supporto anche per l'XML, per il protocollo COM e molto altro. Per ciò che riguarda i database, ci sono interfacce Python verso Oracle, MySQL e altre ancora.

Mmmmm ... Dici che il codice scritto in Python è in media 1/3 più compatto dell'analogo in C o Java. Ma come è possibile?

Semplice: in Python non è necessario dichiarare variabili o argomenti. Le istruzioni non sono raggruppate per mezzo di parentesi (usate per indicare inizio/fine in alcuni linguaggi di programmazione), bensì tramite l'indentazione.

Quali sono i capisaldi di Python?

Uno lo abbiamo già citato: è portabile. Essendo scritto in ANSI C (uno standard del linguaggio C, nato proprio per garantire la portabilità dei programmi C fra diversi sistemi operativi), gira su tutte le piattaforme, dai PDA ai supercomputer. Lo troviamo per Unix, Linux, Mac (Classic e X), MS DOS, Windows (XP, 2000, NT, 98,95), Be-OS, Amiga, Atari, PalmOS, PocketPC, e altri ancora.
E' gratuito. Come Perl o Java, potete scaricarlo liberamente da Internet. Non esistono restrizioni alla sua copia o distribuzione, e chiunque è libero di produrre, tramite Python, applicazioni commerciali (quindi, guadagnarsi da vivere).
E' semplice da usare. Per eseguire un programma scritto in Python dovete digitarlo e lanciarlo, poiché Python esegue all'istante i programmi. A differenza quindi del C, del C++, non esistono fasi di compilazione o link.
E' facile da imparare: se siete già programmatori, imparerete le basi di Python in poche ore. Se siete dei novizi, nel giro di qualche settimane, applicandovi con serietà e regolarità nello studio, sarete in grado di costruirvi programmi in Python completi.
E' potente. Il fatto che sia facile da apprendere non deve ingannare: Python ha dalla sua alcune caratteristiche che lo rendono perfetto per realizzare progetti software complessi, pur mantenendo un'architettura semplice e una sintassi pulita. Tra le sue molte caratteristiche citiamo solo: la tipizzazione dinamica (nessun inserimento di una dichiarazione di tipo o di variabile); e la gestione automatica della memoria.
E' orientato agli oggetti. Supporta concetti quali polimorfismo, l'ereditarietà multipla, e l'overloading. Ma attenzione: in Python l'orientamento agli oggetti è opzionale: potete perciò conseguire ciò che desiderate senza diventare per forza esperti nel ramo della programmazione ad oggetti.
In un certo senso, Python ha qualche cosa che lo rende simile al Mac (su cui tra l'altro ha mosso i primi passi): grazie alla sua semplicità, permette al programmatore di focalizzare il proprio lavoro sul programma che desidera realizzare, o sul problema che vuole risolvere, eliminando gli orpelli, le seccature le asperità di altri linguaggi.

Ma a quale famiglia appartiene Python?

Python è un linguaggio pseudocompilato. Il codice sorgente viene compilato in un formato chiamato byte code (indipendente dalla piattaforma). Terminata questa fase, il programma viene inviato alla Python Virtual Machine che si occupa della sua esecuzione.

Quali sono i suoi difetti?

Non ne ha molti, ma probabilmente quello che al momento pare essere il tallone d'Achille di Python è la velocità di esecuzione. Python può apparire più lento rispetto a il C o al C++. Infatti occorre sapere che in Python vi è la traduzione del codice sorgente in un formato intermedio, chiamato byte code. Questo formato lo rende portabile, quindi indipendente dalla piattaforma. Ma è bene dire che il lavoro svolto su Python per ottimizzarlo lo rende comunque veloce. Da sottolineare che la rapidità di sviluppo garantita da Python può tranquillamente ripagare una sua eventuale 'lentezza'.

Quali sono i suoi ambiti di utilizzo?

Molti. Python è una scelta felice per sviluppare interfacce grafiche utente. Viene distribuito con una interfaccia orientata agli oggetti chiamata Tkinter. I programmi scritti in Python hanno GUI (sigla di Interfaccia Grafica Utente), portabile; in questo modo conservano il loro aspetto nativo sulle diverse piattaforme.
Il Web (recupero dei dati dai formulari riempiti dagli utenti, mail, ftp, http, script CGI), ma anche i motori di ricerca (sia Google che Yahoo! lo impiegano con regolarità ed estremo profitto, al posto di PHP o Perl), o le necessità di manipolazione di semplice testo o stringhe, nonché per certi compiti di amministrazione di sistema: tutto questo vede Python in prima fila.
La prototipizzazione rapida permette di scrivere dei prototipi in Python, quindi 'innestarvi' o implementarvi elementi compilati in C o in C++, là dove sono richieste prestazioni particolari, o un'efficienza 'spinta'. Questo Python lo permette, senza dover per forza riscrivere il programma, ma anzi permettendo a certe parti di restare codificate in Python per garantire una migliore facilità d'uso e di manutenzione.
Python è un buon mezzo per imparare la programmazione a oggetti.
I database non è un ambito che vede Python soccombere, anzi. I moduli disponibili permettono di accedere a database Oracle, PostgreSQL, MySQL, ODBC e altri ancora. Inoltre, esiste Zope, una piattaforma (scritta in Python), che permette di sviluppare applicazioni Web. Grazie alla ricca collezione di librerie, è possibile costruire qualunque tipo di applicazione con tanto di interfaccia utente completa (e complessa). Per esempio, a livello di grafica da segnalare Skencil.

In che cosa si differisce dagli altri linguaggi di programmazione?

Rispetto a Perl, ha di certo una sintassi più leggibile e pulita. Questo vuol dire che permette di ridurre errori, bachi, oltre a essere più semplice da mantenere.
Essendo Open Source e portabile rappresenta una valida e completa alternativa a linguaggi proprietari (vedi Realbasic o Visual Basic).
E' più facile da usare del C o del C++, ma anche di Java, di cui può essere un'ottima alternativa, soprattutto se non si devono scrivere programmi che richiedono prestazioni 'muscolose'.

Chi usa Python?

Tante persone sparse nel mondo, anche se una stima precisa ufficiale è impossibile. Essendo infatti Open Source, esso viene spesso incluso in diverse distribuzioni Linux, ma anche Mac OS X lo porta con sé. Probabilmente sono oltre il milione gli utilizzatori sparsi nel mondo di Python. E con queste FAQ ci auguriamo di contribuire ad aumentarne il numero (almeno in Italia!).
Tra le aziende che lo usano da citare HP, IBM, la NASA, Google e Yahoo!, la Firaxis (la società che sviluppa la serie del celebre videogioco 'Civilization'), l'Industrial Light & Lagic di George Lucas, molte università e centri di ricerca. Senza contare i software che usano la flessibilità di Python per estendere le funzioni dei propri programmi. Quindi, rammentiamo velocemente Blender3D (il programma Open Source di disegno e modellazione 3D), Vue Esprit (della E-On software), il Torque Engine (un motore grafico per la creazione di videogiochi in 3D), e molte altre realtà.

Interessante: ma che ne dicono i programmatori?

Buona domanda: precisando che chi scrive è solo un appassionato di Python, vi sono alcune auterevoli voci nel campo della programmazione che hanno espresso giudizi assolutamente lusinghieri riguardo Python.
Eric S. Raymond, colui che ha coniato il termine Open Source, racconta in un articolo perché Pyhon è divenuto il suo linguaggio di programmazione preferito. Bruce Eckel è un famoso autore di libri su Java e il C++, e anche lui è stato conquistato da questo linguaggio.


Data di pubblicazione: 02-11-2005
L'intero contenuto di questo sito è © dal 1998 del Team di ilMac.net, è vietata ogni riproduzione senza il consenso scritto da parte degli autori.