Conosci la storia del linguaggio di programmazione PHP? Dalla Groenlandia alla Silicon Valley, oggi vedremo insieme la storia di Rasmus Lerdorf (1968) un vero geel guru. Il suo approccio al mondo della programmazione è molto semplice: “Risolvere problemi”.

Dalla Groenlandia alla Silicon Valley

Rasmus Lerdorf nacque a Qeqertarsuaq il 22 novembre 1968, un piccolo paesello di soli 1100 abitanti dell’isola di Disko, in Groenlandia. Dopo questo gelido esordio, si trasferì negli anni 80 in Canada insieme alla sua famiglia e nel 1993 si laureò con lode alla University of Waterloo in Scienze Applicate in System Design Engineering. Fra i suoi successi si inseriscono l’aggiunta della clausola LIMIT al DBMS di MySQL e un contributo ad Apache HTTP Server. 

Big Data Analyst
GEEKS ACADEMY
2.800 €
Vedi di più
Artificial Intelligence con Python
GEEKS ACADEMY
2.800 €
Vedi di più

Un vero ragazzo prodigio, perchè il suo più grande successo arriva proprio dopo la laurea. Nel decennio successivo all’ottenimento della laurea, Rasmus scrive il linguaggio di programmazione PHP, cambia diversi lavori, accumulando esperienza nei settori IT di numerose aziende e spostandosi in diversi stati, fino ad approdare alla California, stato in cui ha tutt’ora residenza.

Nel 2002 comincia la sua carriera presso Yahoo! Inc. in qualità di Infrastructure Architecture Engineer, posto che ricoprirà per 7 anni. Dopo un breve periodo presso WePay dove si occupa di sviluppare API, nel 2013 Rasmus inizia a lavorare per Etsy, il popolarissimo sito di commercio di artigianato, come Distinguished Engineer e ad oggi ancora lavora lì.

Oltre al suo lavoro tecnico, Rasmus partecipa spesso a summit e conferenze in qualità di relatore, ottimo comunicatore, sempre affabile e pronto a rispondere alle domande dei suoi ascoltatori, e sempre preparatissimo. Nel 2007, durante l’Open Source CMS Summit, durante il suo intervento ha esposto una falla nella sicurezza di tutti i progetti che erano stati presentati durante la conferenza. 

Il problem solving alla base di PHP

Rasmus seguiva una filosofia semplice, ma molto efficace: “risolvere problemi”. La creazione di PHP è una dimostrazione del suo approccio estremamente pragmatico: “Non ho creato PHP perché volevo scrivere un nuovo linguaggio. Ma per risolvere un problema. Quello che mi appassiona è risolvere cose. Programmare mi annoia. Sono un ingegnere che ama usare tools e quando non ce n’è uno che mi serve, lo creo. Oggi non ho alcun bisogno di creare un nuovo linguaggio”.

Per capire la personalità e il tipo di intelligenza di Lerdorf possiamo citare un aneddoto risalente a un momento della vita pre-PHP, durante un tirocinio presso la Nortel Telecom di Toronto, che pare abbia avuto una forte influenza sul modo in cui ha progettato PHP. Secondo quanto raccontato da Rasmus stesso, circa ogni due mesi il sistema di callrouting dell’azienda faceva cadere ogni singola chiamata dalla sua coda – un bug che non erano mai riusciti a risolvere, nonostante avessero passato anni a cercarlo. Il compito di risolvere il problema venne affidato proprio al giovane tirocinante, non con il vero intento di risolverlo, ma per mettere alla prova le sue capacità di testing e problem solving.

Lerdorf stampò su carta l’intero codice sorgente appendendolo sulle pareti dei corridoi degli uffici. Cominciò un’attenta analisi del flusso, tentando di debuggarlo manualmente. Dopo tre mesi e mezzo, Rasmus trovò finalmente l’errore, che si rivelò essere una collisione della variabile globale. “Due parti separate del codice, completamente estranee, avevano lo stesso nome per una variabile. E quest’ultima era globale: cambiata in un posto esattamente nel momento sbagliato, avrebbe fatto impazzire quest’altro codice. E il compilatore C all’epoca non aveva modo di informarci che ciò stava accadendo…”. 

PHP, la soluzione concreta

Ma come arrivò un tirocinante di Toronto a diventare uno dei padri dell’informatica? La consacrazione nell’olimpo dell’IT arrivó abbastanza presto per Rufus Lerdorf, infatti PHP è nato nel 1994, appena un anno dopo la sua laurea: «Quando ho iniziato a scrivere PHP, non avevo alcuna idea di come si scrivesse un linguaggio di programmazione. Allora cosa ho fatto? Sono andato avanti per step logici, aggiungendo via via un pezzo del puzzle a un altro». E ancora, “Ho sempre pensato a PHP come a una soluzione concreta da usare, come uno spazzolino. Lo usi ogni giorno, fa il suo lavoro, è uno strumento semplice. Allo stesso modo, ho concepito PHP”.

Il nuovo programma venne lanciato sul mercato un anno dopo, nel 1995 con l’acronimo “PHP” stava per Personal Home Page e il codice veniva identificato come un “Hypertext Preprocessor”. PHP è stato inizialmente scritto in C come un insieme di CGI – no, non gli effetti speciali di Hollywood! – ovvero “Common Gateway Interface”. 

Lo scopo principale di PHP era offrire la possibilità di creare pagine web dinamiche e più interattive, e non a caso la sua creazione coincide con gli anni del boom di Internet! L’idea di Rasmus era piuttosto semplice e chiara: trovare un’alternativa facile e veloce rispetto a C e Perl, la cui scrittura era troppo lenta per i ritmi che stava imponendo la diffusione di Internet. Pertanto, Rasmus creò un linguaggio che potesse essere usato come template, all’interno del quale andare a incorporare snippets in grado di mostrare gli output di funzioni o valori salvati in variabili, mentre il resto della logica di business lato-server poteva tranquillamente continuare ad essere implementata in CGI separate.

Rasmus ricorderà sempre l’esperienza alla Nortel Telecom, un’importante lezione, soprattutto durante l’aggiunta di variabili e scope in PHP, il che fa sì che quando in PHP si ha intenzione di passare al globale, “devi dichiarare dannatamente bene il fatto, all’interno del metodo o di una funzione”, in modo da prevenire un passaggio accidentale.

Spesso, quando Lerdorf partecipa a conferenze o summit su PHP ribadisce una serie di concetti importanti per capire come funziona PHP e in generale la programmazione; fra questi, ci sono due lezioni di vita particolarmente importanti da portare a casa: 

  1. Costruire un ecosistema
    Durante la creazione di PHP la priorità non è mai stata quella di avere un linguaggio corretto 100%, quanto il fatto che l’ecosistema all’interno del quale si andava a posizionare questo linguaggio fosse il più comprensivo e adatto possibile e ne assicurasse il buon funzionamento sulla maggior parte degli ambienti di hosting condivisi e l’integrazione con i web server e i sistemi di database esistenti.
  1. Il codice si fa per sé stessi
    L’approccio di Rasmus alla programmazione, ovvero “risolvere problemi”, vale un po’ per tutti: il team di sviluppo di un linguaggio, così come gli sviluppatori indipendenti, cerca sempre di trovare nuove soluzioni a problematiche che causano difficoltà a loro, e non alla community: è per questo che è importante identificare il singolo problema, prima di poter sperare in una soluzione.

La diffusione di PHP

Rufus non avrebbe mai immaginato che PHP potesse essere così longevo, il suo progetto iniziale prevedeva che la durata massima di PHP sarebbe stata di sei mesi, magari un anno. E ogni sei mesi si ritrovava a sorprendersi che PHP fosse ancora in uso e che nessun altro avesse pensato di scrivere un linguaggio più efficace. Beh, possiamo tranquillamente dire che Rasmus si sbagliava di grosso, considerando che il 2019 ha visto il suo linguaggio di programmazione PHP compiere ben 25 anni! 

PHP è ancora oggi il linguaggio di scripting generico e open-source più diffuso al mondo, utilizzato da quasi l’80% di tutti i siti web presenti su Internet. Grazie a uno script, il codice può interrogare database, creare immagini, leggere e scrivere file e comunicare con server remoti.

PHP può essere utilizzato con tutti i principali sistemi operativi, compresi Linux, Microsoft Windows, Mac OS X e RISC OS. Inoltre, gli sviluppatori di PHP sono ben consci delle minacce alla sicurezza sulla rete e hanno implementato la funzione di accesso obbligatorio tramite nome utente e password per poter accedere al sito. PHP è alimentato dalla piattaforma open-source Zend Engine, e può essere incorporato direttamente nell’HTML o utilizzato nei sistemi di gestione dei contenuti (CMS) o nei framework web.

Ad oggi non è chiaro quanti siano esattamente gli sviluppatori PHP nel mondo, anche se Zend ha recentemente stimato che il numero si aggira intorno ai 5 milioni. Secondo il Web Server Survey di Netcraft, a gennaio 2013, circa 244 milioni di siti web utilizzavano PHP, e nonostante la creazione di nuovi tools e linguaggi, PHP è tutt’ora usato nella stragrande maggioranza dei siti web. La mascotte di PHP è un grande elefante blu che si chiama “elePHPant”.

Messaggio per aspiranti programmatori

Una delle raccomandazioni che Rasmus sembra fare ad ogni conferenza e ad ogni suo collaboratore sia di “non perdere di vista che cosa state programmando, e il motivo per cui lo state facendo. Stiamo programmando per risolvere un problema. E si spera sia un problema che ha effettivamente un significato. Quindi lavorate su cose che hanno un significato per voi, per favore”. 

Infine, pare che l’unico requisito che Lerdorf imponga ai propri futuri colleghi sia una conoscenza del funzionamento di C, in quanto C è alla base di praticamente tutto quello che esiste online, e Rasmus si dice un po’ “scettico” di chiunque si dichiari programmatore senza una buona conoscenza di C.

I CORSI DELLA GEEKS ACADEMY

Ti senti ispirato dalla storia di questo grande geek? Approfitta dei corsi di Geeks Academy per dare una svolta alla tua carriera e arricchire il tuo portfolio! Corsi a numero chiuso in partenza a partire da settembre.

Vuoi ricevere maggiori informazioni? Mettiti in contatto con lo staff Emagister, sapremo consigliarti il corso più adatto alle tue esigenze professionali.

AI & Big Data Specialist Mastery Program
GEEKS ACADEMY
8.950 €
Vedi di più
Cybersecurity & Cloud Specialist Mastery
GEEKS ACADEMY
8.450 €
Vedi di più

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *