Programmare in Perl
Un linguaggio di programmazione facile facile
Con la diffusione dell'informatica, delle reti e di Internet i linguaggi di programmazione sono diventati il pane quotidiano di tantissime persone... Ovviamente prima che arrivasse la IA a lasciarle disoccupate ![]()
È chiaro che mi piace scherzarci un po` su ma, tornando a noi, tra tutti i linguaggi di programmazione ne esiste uno cui sono particolarmente affezionato e con cui ho lavorato, e ci lavoro ancora, da oltre vent'anni.
Pensate: è stato «inventato» non da un informatico ma da un linguista... con questo linguaggio ci fanno gare di poesia e, basta conoscere un po` la lingua inglese, per cominciare a programmare!
Non informatico ma... linguista!
La storia dell'informatica è spesso piena di ingegneri severi, di matematici rigidi e di fisici con teorie complesse. Poi, alla fine degli anni '80, è arrivato lui... Un uomo dallo sguardo simpatico, con un paio di occhialini, i baffi alla messicana ed una laurea in... linguistica! Sì perché il software di cui si parla oggi è un linguaggio di programmazione fatto da Larry Wall che, di mestiere, faceva proprio il linguista!
Volendo proprio dirla tutta, Larry non sognava di creare un linguaggio di programmazione per conquistare la Silicon Valley. In realtà, il suo sogno nel cassetto, era studiare le lingue non scritte delle tribù africane e produrre una sua personale traduzione della Bibbia. Un piano semplice e perfetto, se non fosse che la salute gli giocò un brutto scherzo, costringendolo ad annullare il sogno di spostarsi in Africa...
Rimasto negli Stati Uniti finì a fare il sistemista per la System Development Corporation ma, esclusivamente, per sbarcare il lunario e senza nessuna idea di far carriera lì... in quel periodo, questa compagnia, stava lavorando su un progetto segreto della Marina americana...
Ed è proprio qui che la storia di Larry prende una svolta inaspettata e, per molti versi, anche incredibile.
La nascita di un incubo (e la pigrizia di Larry)
Da buon ultimo arrivato nel team, nel 1987, Larry si trovò di fronte ad un compito che tutti, abilmente, avevano evitato e che qualcuno aveva pensato di lasciare proprio per lui. Un compito apparentemente banale ma, certamente, molto noioso: doveva generare dei resoconti dettagliati estraendo dati da una rete di computer diffusa tra le due coste statunitensi.
Da buon informatico del suo tempo, pensò subito di usare i programmi disponibili su Unix per svolgere i compiti assegnatigli. Questi programmi erano, sì, fantastici, ma ognuno di loro faceva una sola cosa e la faceva come diceva lui:
awk, ad esempio, era ottimo per manipolare il testo, ma pessimo per gestire i file.
sed era perfetto per le sostituzioni al volo, ma possedeva una sintassi... orribile!
Il collante di tutto questo era la shell ma era una «colla» che frenava il lavoro in modo pauroso non appena i compiti da eseguire diventavano un po` «pesanti».
Eppoi c'era il re della programmazione, il linguaggio C, che era velocissimo, certo, ma richiedeva centinaia di righe di codice e ore di compilazione solo per arrivare a stampare un banalissimo report!
Di fronte a questi strumenti, Larry si sentiva frustrato e stanco ed è proprio qui che arriva quella che è la virtù principale di ogni buon programmatore: la pigrizia!
Grazie al cielo, Larry Wall, era un programmatore molto pigro e questa sua grande virtù lo spinse, finalmente, a dire basta. Non voleva adattarsi ai limiti imposti dalla macchina e dai suoi software ma decise di fare in modo che fosse la macchina ad adattarsi alle sue esigenze...
Ma Larry non era un ingegnere: e, probabilmente, fu proprio questa la fortuna più grande... perché affrontò il problema con il «tocco del linguista»... Il suo pensiero corse alle lingue naturali: l'italiano o l'inglese, ad esempio, non sono perfetti perché sono pieni di eccezioni, contengono sinonimi, frasi gergali però... però funzionano alla grande perché, come tutte le lingue, si adattano al contesto, al preciso momento in cui una frase, o un discorso, sono fatti.
Ed una domanda, ora, gli rimbalzava in mente: «perché i linguaggi di programmazione dovevano essere rigidi, freddi e dogmatici e non essere, anche loro, contestuali?»
A quel punto, prese il meglio di awk, di sed, della shell e del linguaggio C mescolando abilmente gli elementi che gli servivano, giungendo a creare un linguaggio di programmazione completamente nuovo. Un linguaggio di programmazione dove la sintassi dipendeva dal contesto e dove le variabili potevano essere «singolari» o «plurali» come scalari, array ed hash a seconda dei casi... ma, soprattutto, era guidato da una filosofia rivoluzionaria, una filosofia sintetizzata in una frase rimasta scolpita in una delle pietre miliari della storia dell'informatica:
«There's More Than One Way To Do It»
Che significa: «c'è più di un modo per farlo».
E così, Larry Wall, aveva scoperto il classico «uovo di Colombo»: non c'è mai una sola via per raggiungere un risultato, non esiste una strada «giusta» per risolvere un problema, come spesso raccontavano programmatori ed ingegneri. E questo suo nuovo linguaggio di programmazione si fondava su un concetto base importantissimo: se hai fatto qualcosa, se questo «qualcosa» funziona pure e se a te che lo hai scritto è chiaro anche il suo funzionamento, beh, allora... va bene per tutti!
Un nome per la nuova creatura
E, alla fine, arriva il momento in cui Larry Wall deve dare un nome alla sua creatura, a questo nuovo linguaggio di programmazione nato per creare, con semplicità, report da quantità immense di dati, spesso provenienti da fonti diverse... Gli serviva un nome breve ma che ispirasse anche positività...
Come spesso accade, pensò a chi gli era stato vicino... pensò a sua moglie. Per un attimo gli sembrò una bella idea chiamare il nuovo linguaggio «Gloria»... Ma si bloccò subito pensando agli improperi che avrebbero potuto lanciare altri programmatori quando qualcosa sarebbe andato storto... No, Gloria, non gli sembrò più il nome adatto!
Gli venne in in mente «Pearl», ma quel nome, perla, era stato già usato... tuttavia, non si perse d'animo: tolse quella «a» di troppo ed il nome divenne anche un bellissimo acronimo: Practical Extraction and Report Language che, tradotto in italiano, significa «Linguaggio pratico di estrazione e reportistica», Perl, appunto... ed ora che lo aveva finalmente trovato, quel nome, gli suonava bellissimo!
Il 18 dicembre 1987, Larry Wall pubblicò la versione 1.0 di Perl sul newsgroup e la reazione della comunità Unix fu immediata ed esaltante! Fu esattamente come regalare un coltellino svizzero a persone che, sino a quel momento, avevano cercato di tagliare il pane con una pietra affilata!
In pochissimo tempo, il successo fu enorme: Perl divenne il collante di tantissime operazioni e, con la comparsa di Internet, ne divenne il motore nascosto che alimentò, ed alimenta ancora, server e siti web, facilitando l'amministrazione dei sistemi Linux in tutto il mondo... E tutto questo non grazie a un software complicato ma grazie alla geniale «pigrizia» di un linguista coi baffi!
Il Perl nella mia esperienza
Ed ora veniamo a me... Voglio ringraziare pubblicamente Mr. Larry Wall con questo episodio ed è, davvero, il minimo che io possa fare! ho usato Perl per lavoro per moltissimi anni ed è stato davvero il coltellino svizzero della mia attività di programmatore e amministratore di sistemi. È incredibilmente potente nel mettere insieme i risultati provenienti da software diversi, rielaborarli e fornire i risultati in qualsiasi modo mi servano.
Non solo: posso usarlo in Apache e realizzare con lui interi siti internet o, anche, piccoli componenti delle pagine Web che finiscono come «gioielli dinamici» incastonati in pagine che, altrimenti, sarebbero inesorabilmente statiche... ah, voglio confidarvi un segreto: il mio sito, ik7xja.it, usa del semplice HTML con Server Side Includes, Perl, Javascript ed un piccolo database che si chiama «sqlite»...
Ed ora, il nuovo episodio!
Ecco il nuovo episodio del mio podcast dedicato a questo interessante linguaggio di scripting e programmazione. Come sempre, potete ascoltarlo sul mio canale nella piattaforma spreaker.com:
Ascolta "Episodio 94, Storie di Software: Perl #programming #scripting #opensource" su Spreaker.
e, ovviamente, sul mio canale Youtube:
