Rasmus Lerdorf: PHP e la democratizzazione del Web dinamico
Scopri come gli strumenti personali di Rasmus Lerdorf sono diventati PHP e poi un linguaggio collettivo che ha reso il Web dinamico accessibile a milioni di creatori.
Pubblicato 24 agosto 2026Lettura : 9 minDi Yann Bastien
Rasmus Lerdorf non iniziò PHP con l’ambizione di creare un grande linguaggio generalista. Nel 1994 voleva sapere chi visitava il suo curriculum online, riutilizzare frammenti di pagina e gestire più facilmente i moduli del Web nascente. Per farlo scrisse alcuni programmi in C eseguiti dal server.
Migliaia di creatori incontrarono presto lo stesso bisogno: generare una pagina in funzione di una richiesta, registrare un input o interrogare un database senza costruire un’intera infrastruttura in C o coordinare numerosi script Perl separati.
PHP divenne influente proprio perché ridusse la distanza tra HTML e comportamento. La sua storia mostra però anche che uno strumento personale diventa una piattaforma mondiale solo cambiando scala e autori. A partire da PHP 3, Andi Gutmans, Zeev Suraski e una vasta comunità riscrissero ed estesero profondamente il progetto iniziale di Lerdorf.
Dalla Groenlandia all’ingegneria dei sistemi
Lerdorf nacque nel 1968 in Groenlandia in una famiglia danese e crebbe poi in Danimarca e Canada. Studiò ingegneria della progettazione dei sistemi all’Università di Waterloo, laureandosi nel 1993.
Il giovane Web serviva soprattutto documenti HTML statici. Per le risposte dinamiche si usava la Common Gateway Interface (CGI), che avviava un programma esterno e gli passava i dati della richiesta. CGI era potente ma tecnico: bisognava analizzare parametri, produrre header HTTP, effettuare l’escaping dell’HTML e collegare manualmente file o database. Lerdorf si concentrò sull’eliminazione di questo lavoro ripetitivo.
Personal Home Page Tools: misurare e automatizzare
Nel 1994 Lerdorf scrisse in C una serie di binari CGI per il proprio sito. Registravano le visite al curriculum e permettevano di riutilizzare elementi delle pagine. Li chiamò Personal Home Page Tools.
Aggiunse poi la gestione dei moduli, permettendo di recuperare valori inviati dal browser e costruire guestbook, visualizzare dati o adattare pagine senza scrivere ogni volta un programma CGI completo. Nel giugno 1995 pubblicò il codice sorgente, consentendo agli utenti di installarlo, correggerlo ed estenderlo.
Nomi come PHP Tools, Forms Interpreter e Personal Home Page Construction Kit riflettono l’evoluzione del progetto: dal monitoraggio di un sito personale a un linguaggio di scripting incorporato nell’HTML.
Incorporare il programma nella pagina
L’innovazione pratica di PHP/FI fu collocare istruzioni dinamiche direttamente dentro l’HTML. Il server interpretava quelle aree e inviava al browser solo il risultato.
<h1>Ciao <?= htmlspecialchars($name) ?></h1>
Gli sviluppatori potevano partire da una pagina normale e aggiungere una condizione, un valore di modulo o un risultato di database esattamente dove doveva apparire. Questo rendeva molto rapido ottenere il primo risultato.
Il modello introduceva però un rischio architetturale: quando accesso ai dati, regole applicative e presentazione si accumulano nella stessa pagina, test e manutenzione diventano difficili. I framework avrebbero poi introdotto separazioni più nette, senza cancellare il vantaggio iniziale: PHP incontrava il creatore di pagine nel file che già utilizzava.
PHP/FI 2: dalla cassetta degli attrezzi al linguaggio
Nel 1996 Lerdorf riunì e riscrisse gli strumenti come PHP/FI 2.0, ormai dotato di variabili, funzioni definite dall’utente, condizioni, cicli, cookie e connessioni integrate a diversi database.
La sintassi, ispirata a C e Perl, risultava familiare ai programmatori Unix. I dati dei moduli erano facilmente accessibili e le operazioni Web comuni disponevano di funzioni pronte all’uso.
Con la crescita delle applicazioni, l’architettura sviluppata in gran parte da una sola persona raggiunse i propri limiti. Lerdorf non difese ogni dettaglio come intoccabile: accettò una riscrittura quando emerse un’implementazione migliore. Questa disponibilità fu importante per la sopravvivenza di PHP quanto il codice iniziale.
PHP 3: la riscrittura che cambiò la scala del progetto
Nel 1997 gli studenti israeliani Andi Gutmans e Zeev Suraski incontrarono i limiti di PHP/FI in un’applicazione di commercio elettronico e iniziarono a riscrivere il parser. Contattarono Lerdorf e i tre collaborarono a un linguaggio che conservava utenti e approccio di PHP/FI, aggiungendo sintassi più coerente, estensibilità, supporto iniziale agli oggetti e moduli per database, protocolli e API.
PHP divenne l’acronimo ricorsivo PHP: Hypertext Preprocessor. PHP 3.0 fu pubblicato nel giugno 1998 da un team internazionale. Lerdorf fornì l’origine e la direzione pragmatica; Gutmans, Suraski e molti contributori costruirono la piattaforma estensibile. I crediti ufficiali distinguono responsabilità per motori, API, driver e librerie.
Il modello di richiesta che semplificò il deployment
Storicamente PHP carica il contesto necessario per ogni richiesta, produce una risposta e poi libera gran parte dello stato. I dati persistenti risiedono in database, file, cache o sessioni esterne.
Questo modello isola le richieste e consente ai server di distribuire il lavoro tra processi. L’avvio ripetuto ha un costo, compensato dall’integrazione con i server, dalle cache di opcode e dalle ottimizzazioni del motore. Worker persistenti, WebSocket e attività asincrone lunghe richiedono maggiore attenzione perché si allontanano dal ciclo stateless che ha plasmato molte librerie PHP.
Una parte del successo iniziale derivò dall’allineamento con la struttura concreta di una richiesta HTTP e della relativa risposta, invece di imporre al Web un modello applicativo generale.
Zend Engine e la trasformazione in piattaforma
Dopo PHP 3, Gutmans e Suraski riscrissero nuovamente il cuore. Lo Zend Engine, il cui nome deriva dai loro nomi, divenne la base di PHP 4 nel 2000. PHP 5 e Zend Engine II rafforzarono modello a oggetti, eccezioni e interfacce con i database.
Le versioni successive introdussero namespace, trait, generatori, miglioramenti del typing, grandi guadagni prestazionali in PHP 7 e poi attributi, union type e compilazione JIT in PHP 8. Lerdorf rimase un importante contributore e divulgatore, soprattutto sui temi di performance e sicurezza, ma non fu più l’architetto unico.
La successione di motori e team illustra un principio dell’open source: il creatore può dare l’impulso senza diventare il collo di bottiglia di ogni funzione futura.
LAMP: uno stack accessibile per pubblicare un’idea
PHP si diffuse insieme a Linux, Apache e MySQL o PostgreSQL, combinazione poi sintetizzata nell’acronimo LAMP.
Gli hosting condivisi potevano offrire a ogni cliente una directory in cui depositare file PHP senza richiedere l’amministrazione di un processo applicativo permanente. WordPress, Drupal, Joomla, forum e negozi moltiplicarono questa accessibilità. Disponibilità predefinita, esempi copiabili e database comuni contarono almeno quanto la sintassi.
Il risultato fu anche un’enorme eredità: gli hosting devono mantenere più versioni, le vecchie applicazioni rallentano le migrazioni e una vulnerabilità in un modulo popolare può coinvolgere moltissimi siti.
Una progettazione guidata dai casi reali
Lerdorf descrive spesso PHP come uno strumento costruito per risolvere problemi, non come un linguaggio derivato da un grande piano teorico. Le funzioni comparivano perché i siti dovevano decodificare richieste, produrre immagini o parlare con database.
Questo pragmatismo spiega sia la forza sia l’irregolarità storica. Nomi di funzioni, ordine degli argomenti e valori restituiti non seguono sempre una regola uniforme, perché librerie diverse furono integrate in periodi diversi da autori diversi, spesso privilegiando la compatibilità.
Un linguaggio progettato interamente sulla carta avrebbe potuto essere più simmetrico, ma forse avrebbe perso il momento in cui milioni di pagine avevano bisogno di una soluzione immediatamente installabile. PHP moderno aggiunge API più coerenti e depreca vecchi comportamenti, ma non può rinominare liberamente decenni di codice Web.
Sicurezza: la facilità non elimina i confini di fiducia
L’accesso immediato ai valori delle richieste ha talvolta favorito pericolose commistioni tra input utente, SQL, percorsi di file o comandi di sistema. Le prime configurazioni offrivano anche register_globals, che trasformava parametri HTTP in variabili globali e rendeva difficile individuarne la provenienza; le versioni moderne hanno eliminato questo comportamento.
Il problema generale non è un’incapacità intrinseca di PHP di essere sicuro, ma la confusione tra dati e istruzioni. Query preparate, escaping contestuale, validazione, hashing delle password e permessi minimi permettono di costruire applicazioni robuste.
Dai framework alla professionalizzazione dell’ecosistema
Con l’aumento della complessità, framework come Symfony e Laravel separarono routing, controller, modelli, viste e servizi, fornendo dependency injection, migrazioni e protezioni comuni.
Composer organizzò le dipendenze nei primi anni 2010, mentre gli standard PHP-FIG armonizzarono autoloading, interfacce e stile. Questi strumenti rispondono a una scala diversa rispetto a un singolo file PHP incorporato nell’HTML.
Il percorso di PHP va quindi dalla riduzione della cerimonia alla reintroduzione deliberata della struttura quando la complessità la giustifica. La maturità consiste nel preservare un punto d’ingresso accessibile senza fingere che una sola pagina sia adatta a ogni sistema.
Lerdorf dopo la creazione iniziale
Lerdorf lavorò in aziende Web tra cui Yahoo!, WePay ed Etsy, concentrandosi su performance, profiling e sicurezza di piattaforme di grandi dimensioni, continuando al tempo stesso a contribuire all’infrastruttura PHP.
Nei suoi interventi sottolinea l’ecosistema più che il culto del creatore. Pubblicò strumenti affinché altri potessero modificarli, accettò la riscrittura di PHP/FI e condivise la progettazione di PHP 3 invece di preservare la propria implementazione come definitiva.
Il suo contributo personale resta decisivo: riconobbe presto che il Web aveva bisogno di programmazione vicina alla pagina e scelse una forma sufficientemente accessibile da poter essere copiata e adattata.
Perché Rasmus Lerdorf conta ancora
PHP permise a studenti, associazioni, piccole imprese e singoli sviluppatori di trasformare documenti statici in applicazioni basate sui dati senza un team infrastrutturale. Il suo impatto comprende milioni di piccole idee che poterono essere pubblicate.
Il linguaggio porta i segni di questa apertura. La critica alla sua incoerenza storica è valida, ma incompleta senza considerare il problema che risolse. Lerdorf mostrò anche come un creatore possa lasciare che un progetto diventi collettivo: PHP 3 e Zend sono le fondamenta delle versioni che conquistarono il Web.
Il principio duraturo di PHP è che la tecnologia cambia il mondo quando riduce il costo tra un’intenzione e la sua pubblicazione. La sfida successiva è crescere senza perdere l’accessibilità che l’ha resa utile.
Cronologia
1968: Rasmus Lerdorf nasce in Groenlandia.
1993: si laurea in Systems Design Engineering a Waterloo.
1994: crea i primi binari CGI per il proprio sito.
Giugno 1995: pubblica il codice sorgente dei PHP Tools.
1995: il progetto evolve attraverso Forms Interpreter e torna al nome PHP.
1996: PHP/FI 2.0 diventa un linguaggio incorporato nell’HTML.
1997: inizia la riscrittura del parser con Andi Gutmans e Zeev Suraski.
Giugno 1998: il team internazionale pubblica PHP 3.
2000: PHP 4 adotta Zend Engine.
2004: PHP 5 e Zend Engine II rafforzano il modello a oggetti.
2015: PHP 7 migliora notevolmente prestazioni e memoria.
2020: PHP 8 aggiunge attributi, union type e compilazione JIT.
Anni 2000–2020: Lerdorf continua a lavorare su performance e sicurezza Web.
Domande frequenti
Rasmus Lerdorf voleva creare un linguaggio di programmazione?
Non inizialmente. Costruì strumenti CGI per monitorare visite, riutilizzare contenuti e gestire moduli. Le esigenze degli utenti trasformarono gradualmente il toolkit in un linguaggio.
Rasmus Lerdorf ha creato da solo il PHP moderno?
No. Creò PHP Tools e PHP/FI e collaborò a PHP 3. Andi Gutmans e Zeev Suraski riscrissero il parser e progettarono Zend; molti contributori costruirono le versioni e le estensioni moderne.
Cosa significa PHP oggi?
Significa PHP: Hypertext Preprocessor, un acronimo ricorsivo. L’originale “Personal Home Page Tools” divenne troppo limitato quando il progetto si trasformò in un linguaggio generale lato server.
Perché PHP si è diffuso così tanto?
Aggiungeva comportamento all’HTML con poca configurazione, offriva accesso diretto a moduli e database ed era disponibile presso molti hosting. I CMS open source ne moltiplicarono la diffusione.
PHP è adatto solo ai piccoli siti?
No. Framework, strumenti per le dipendenze, analizzatori statici e miglioramenti del motore supportano grandi applicazioni. Il punto d’ingresso semplice non elimina la necessità di architettura, test e pratiche di sicurezza quando i progetti crescono.
Scopri come Guido van Rossum ha creato Python partendo dall'esperienza di ABC, ne ha guidato l'evoluzione e ha trasformato un progetto personale in un bene della comunità.