Vai al contenuto principale
BiografiaStoria dell’informaticaPrincipiante

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
Ritratto di Rasmus Lerdorf davanti a una pagina Web che combina HTML, PHP e accesso a un database
Mostra indice
  1. Dalla Groenlandia all’ingegneria dei sistemi
  2. Personal Home Page Tools: misurare e automatizzare
  3. Incorporare il programma nella pagina
  4. PHP/FI 2: dalla cassetta degli attrezzi al linguaggio
  5. PHP 3: la riscrittura che cambiò la scala del progetto
  6. Il modello di richiesta che semplificò il deployment
  7. Zend Engine e la trasformazione in piattaforma
  8. LAMP: uno stack accessibile per pubblicare un’idea
  9. Una progettazione guidata dai casi reali
  10. Sicurezza: la facilità non elimina i confini di fiducia
  11. Dai framework alla professionalizzazione dell’ecosistema
  12. Lerdorf dopo la creazione iniziale
  13. Perché Rasmus Lerdorf conta ancora
  14. Cronologia
  15. Domande frequenti
  16. Rasmus Lerdorf voleva creare un linguaggio di programmazione?
  17. Rasmus Lerdorf ha creato da solo il PHP moderno?
  18. Cosa significa PHP oggi?
  19. Perché PHP si è diffuso così tanto?
  20. PHP è adatto solo ai piccoli siti?

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.

Questo articolo ti è stato utile?

Fonti e riferimenti

  1. 1.PHP Manual - History of PHP
  2. 2.PHP Manual - PHP/FI Version 2.0 Documentation
  3. 3.PHP - Project Credits
  4. 4.Rasmus Lerdorf - 25 Years of PHP
  5. 5.University of Waterloo - Rasmus Lerdorf alumni profile

Raccolta

Linguaggi di programmazione

26 / 26

  1. 01Grace Hopper: dai primi compilatori a COBOL
  2. 02John Backus: FORTRAN, la notazione BNF e il rifiuto del codice macchina
  3. 03Dennis Ritchie: il linguaggio C al cuore di Unix
  4. 04FORTRAN: dimostrare che un compilatore può competere con l'assembly
  5. 05Il linguaggio C: rendere portabili i sistemi senza nascondere la macchina
  6. 06Niklaus Wirth: da Pascal a Oberon, progettare con la semplicità
  7. 07Bjarne Stroustrup: progettare C++ senza rinunciare alle prestazioni
  8. 08Pascal: imparare a programmare rendendo visibile la struttura
  9. 09C++: da C with Classes al C++ moderno
  10. 10Programmazione orientata agli oggetti: oggetti, messaggi e astrazioni riutilizzabili
  11. 11Guido van Rossum: creare Python per rendere il codice leggibile
  12. 12Brendan Eich: JavaScript, dal prototipo Netscape allo standard del Web
  13. 13James Gosling: l'ingegnere all'origine di Java
  14. 14Python: leggibilità, batterie incluse e un ecosistema globale
  15. 15Java: scrivere una volta, eseguire ovunque
  16. 16JavaScript: il linguaggio che ha reso interattivo il Web
  17. 17Ken Thompson: da Unix a Go, la semplicità come metodo
  18. 18John McCarthy: Lisp e l'idea di programmare con i simboli
  19. 19Alan Kay: Smalltalk e il computer come medium personale
  20. 20Barbara Liskov: l'astrazione che ha reso modulare il software
  21. 21Robin Milner: ML, dimostrazione assistita e linguaggi dell'interazione
  22. 22Brian Kernighan: AWK, Unix e l'arte di spiegare il codice
  23. 23Anders Hejlsberg: da Turbo Pascal a C# e TypeScript
  24. 24Larry Wall: Perl, il linguaggio che ha collegato gli strumenti di Internet
  25. 25Yukihiro Matsumoto: Ruby e la felicità del programmatore
  26. 26Rasmus Lerdorf: PHP e la democratizzazione del Web dinamico