Perché utilizzare Python?

Pubblicato su www.programmazione.it ad ottobre 2002

Breve introduzione al Python

Il mondo informatico è saturo di linguaggi di programmazione con caratteristiche disparate. Nella grande famiglia dei linguaggi di scripting ha fatto la sua entrata in grande stile Python, che si è imposto da subito come una buona alternativa a linguaggi di alto livello, come Java. Fino a pochi anni fa i linguaggi di programmazione più usati erano legati alla piattaforma; l'ultima tendenza, comunque, sembra voler dare ragione a chi pensava a linguaggi che si basassero su uno strato software intermedio: le moderne macchine virtuali o interpreti di bytecode. Python è uno di questi linguaggi, le sue caratteristiche lo rendono estremamente portatile sul moltissime piattaforme, con ottime performance. Python è un linguaggio con una sintassi sintetica, molto funzionale e semplice da leggere per la sua formattazione obbligatoria, infatti i blocchi di codice si differenziano per l'indentazione del testo verso destra. Questo sistema, che in un primo momento potrebbe disorientare coloro che provengono da linguaggi come C, in realtà rende più leggibile il codice. Python introduce una sintassi rivoluzionaria rispetto ad altri linguaggi. Ha le caratteristiche di un linguaggio di scripting come Perl e la potenza di un linguaggio ad alto livello OOP come Java. Con queste particolarità è ideale per realizzare piccoli script per amministrare il proprio sistema oppure per creare applicazioni di grandi dimensioni con un alto grado di complessità.

Caratteristiche principali del linguaggio

Python è un linguaggio di scripting interpretato, il sorgente può essere compilato in un codice portatile intermedio, chiamato anche bytecode. Per questa sua caratteristica può essere equiparato a Perl, anche se la sintassi di Python non è criptica come quella di Perl. La possibilità di scrivere classi e di poter lavorare con una metodologia OOP rende meno arduo creare software di grandi dimensioni e lo rende molto più vicino a linguaggi come Java. Un linguaggio di scripting può essere visto come un linguaggio pesante e lento, in Python questo non è vero; le sue prestazioni sono simili a quelle di Java, con un netto vantaggio: il consumo di memoria. Come per Java e per altri linguaggi ad alto livello come Visual Basic, Python ha una gestione della memoria automatica. In Python troviamo tutti i costrutti della programmazione procedurale classica con qualcosa in più. Le variabili non hanno tipo statico, una variabile può cambiare tipo di oggetto a runtime. Questo rende Python più flessibile rispetto a C, C++ e Java, ma allo stesso tempo si ha una notevole riduzione delle performance rispetto a questi linguaggi. Per quanto riguarda le strutture dati, possiamo realizzare classi, array, tuple e dizionari. Le classi sono delle vere e proprie classi basate sulle strutture sintattiche della programmazione OOP. Le liste e le tuple sono molto simili. Le liste sono delle vere e proprie istanze di classe e possono contenere qualsiasi tipo. Esempio:

mioarray = ['primo','secondo']
mioarray.append('terzo')
print mioarray
['primo','secondo','terzo']

Python ha una gestione degli errori molto avanzata, permette di gestire le eccezioni di qualsiasi tipo tramite il blocco

try:
	codice
except TipoEccezione, oggettoEccezione:
	codice

Le eccezioni possono essere lanciate con il comando raise . Le innumerevoli di librerie Python sono gestite con un sistema di namespaces, ad ogni nome viene collegato una libreria o un oggetto interno alla libreria come una classe o una semplice funzione. Con questo sistema si possono importare funzionalità all'interno della nostra applicazione con estrema facilità e in un qualsiasi punto del codice. La creazione di classi in Python è davvero molto semplice, si utilizza la parola riservata class:

class MiaClasse(ClasseEreditata):
   " Questa è una classe di esempio "

   def __init__(self, obj): # costruttore della classe
          self.obj = obj

   def scrivi(self): # metodo scrivi
          print self.obj

mc = MiaClasse('ciao !!!')
mc.scrivi()

risultato:

ciao!!!

Ho realizzato una classe che ricevere un oggetto nel costruttore per poi stamparlo con il metodo scrivi(). Ho detto un "oggetto" perché se invece di una stringa di testo io gli avessi passato un'istanza di un classe o un numero, avrebbe stampato quell'oggetto o quel numero. In genere la lunghezza di un codice Python è del 90% più corta rispetto all'equivalente applicazione scritta in C, questo fa di Python un veloce strumento per creare qualsiasi applicazione. L'interprete Python, con una vastissima quantità di librerie standard, ha un peso che si aggira intorno ai 6/7Mb. Nel pacchetto troverete oltre all'interprete e alle librerie, anche alcuni tool come IDLE, un IDE Python scritto con Tkinter. Lo stesso interprete può essere utilizzato anche in modo interattivo. Python è open source, il suo sviluppo viene portato avanti da una fondazione senza scopo di lucro (PSF - Python Software Foundation -) e da una vasta schiera di programmatori di tutto il mondo. Si può liberamente scaricare da questo sito.

Perché e quando utilizzare Python?

Tanto per cominciare Python è libero, si può liberamente scaricare e utilizzare. Questo è uno dei fattori che ha diffuso questo linguaggio in tutto il mondo. Utilizzate Python perché:

  • ha una sintassi semplice e diretta: scrivere piccoli software con Python è ancora più facile e veloce che con altri linguaggi;
  • è multipiattaforma: i software scritti in Python possano essere utilizzati su altri sistemi operativi senza alcuna modifica;
  • è veloce: anche se interpretato rimane sempre molto veloce rispetto agli altri linguaggi di scripting.

... e quando?:

  • Per creare interfacce grafiche multipiattaforma, sfruttando la libreria Tkinter;
  • per elaborare testo; con la potenza dei costrutti e delle strutture dati si possono realizzare script per trattare qualsiasi file di testo anche di grosse dimensioni visto che Python bufferizza i dati;
  • per creare cgi; con l'ausilio della libreria "cgi" potete realizzare dei cgi in poco tempo e se utilizzate il framework di mod_python lo potrete utilizzare anche per grandi progetti;
  • per parsare xml e per realizzare web service in poche righe di codice.

Chi utilizza Python?

Python viene utilizzato in campi molto diversi: la NASA lo utilizza per scrivere il codice per le simulazioni, il portale Yahoo ha sviluppato diversi servizi web con Python, all'interno del motore di ricerca Google alcune applicazioni sono state sviluppate in Python. Red Hat e Mandrake lo utilizzano per creare i software di installazione delle distribuzioni e alcuni applicativi per la configurazione visuale delle stesse.

Conclusioni

Mi è capitato di utilizzare Python per scrivere un semplice script che mi trasformasse un file di testo CSV, esportato da un foglio di Excel in un file SQL con il codice per inserire i dati del CSV in un database MySQL. In quella occasione ho notato come in pochi minuti e senza tanta fatica sono riuscito a realizzare uno script che mi permetteva di fare quello che volevo. Avere la padronanza del linguaggio Python può dare molte soddisfazioni in tutti quei casi in cui i software che ci sono in circolazione non sono adatti al lavoro che dobbiamo svolgere e c'è bisogno di perdere poco tempo nella realizzazione di tool funzionanti. La mia esperienza in fatto di Python si limita a circa un anno e in questo periodo di tempo l'ho utilizzato in diverse applicazioni. Ci sono moltissime cose da sapere su Python e visto che è un linguaggio in continua evoluzione bisogna seguire sempre l'uscita delle nuove versioni. Spero che queste poche righe vi possano essere state di aiuto per capire quali sono i molteplici vantaggi di questo straordinario linguaggio di programmazione.

Riferimenti