PHP: the afternoon project that runs half the internet
On June 8, 1995, a Danish-Canadian programmer named Rasmus Lerdorf dropped a message into the Usenet group comp.infosystems.www.authoring.cgi. The subject line read “Announce: Personal Home Page Tools (PHP Tools).” He had written the original version in an afternoon, in Perl, to solve a single irritating problem: he had no idea who was reading his CV on the internet.
Lerdorf had graduated from the University of Waterloo in 1993 and was working as an IT consultant in Toronto when he wrote the first CGI scripts. The specific problem was visibility. Websites in 1994 had no analytics, no tracking, no visitor logs that an ordinary webmaster could use. If you posted your resume to the web, you were posting into a void. So Lerdorf wrote a Perl wrapper — an afternoon of code — that logged hits to his personal homepage and let him watch the numbers tick up. He called the tool Personal Home Page.
The Perl version worked, but forking a Perl interpreter on every page request was slow. Lerdorf rewrote the tool in C. Then he added a form-handling component he called FI, for Forms Interpreter. Then he connected it to databases. By mid-1995, the thing had grown past what one name could hold, so he combined them: PHP/FI. The first public release, covered by the GNU General Public License and therefore free to anyone who wanted it, shipped in June.
What distinguished PHP from the alternatives was the embedding. In the mid-1990s, the standard way to generate dynamic web pages was a CGI program that spat out HTML. You wrote a program; it produced a document. PHP flipped the relationship: you wrote HTML and dropped PHP code inside it, between angle brackets and question marks, wherever you needed it. Dynamic content went where the HTML was, not the other way around. It felt like modifying a template rather than writing a system. Millions of people who could write HTML but not C or Perl grasped it immediately.
Lerdorf himself was characteristically blunt about the whole enterprise. “I really don’t like programming,” he said in a 2003 interview. “I built this tool to program less so that I could just reuse code.” He was equally candid about what he had accidentally built: a programming language. “I don’t know how to stop it,” he said. “There was never any intent to write a programming language. I have absolutely no idea how to write a programming language.”
By May 1998, nearly 60,000 internet domains were running PHP — roughly one percent of all domains then in existence. By 2020, that share had grown to 78.9 percent of all websites with a known server-side language. Facebook was built on it. WordPress is built on it. Billions of people interact daily with systems assembled from code that one man wrote in an afternoon, in Perl, to count who was reading his resume.
Languages designed by committees fill specifications and sit on shelves. The ones that quietly ran away with the internet were built to scratch specific itches, dropped on Usenet under a free license, and left for whoever showed up.
Sources
- PHP: History of PHP — PHP Manual — Timeline of PHP’s creation, the June 1995 release, PHP/FI naming, and the 60,000-domain milestone.
- PHP — Wikipedia — Rasmus Lerdorf’s background, the Usenet announcement, and PHP’s technical evolution.
- Happy 25th Birthday PHP — WordPress Core Blog — 78.9% global website adoption figure as of 2020.