20 Years of PHP

20 Years of PHP

Do you remember the .phtml suffix? For those of you who do: yes, I am around that long. I'll spare you the details but that's the time I got started with PHP. Why am I telling you this, you may ask? Because Ben Ramsey asked the PHP community to blog about our first encounter with PHP in light of the language's 20th anniversary.

It was only a few weeks after I started using PHP that it became fashionable to use the .php3 suffix – bluntly ignoring the fact that encoding the version number of a programming language into a file extension is quite a stupid idea. But then, so was mixing HTML and application code, at least from today's perspective. Before I realized that, I also was guilty of this sin.

One of my first real PHP-related projects was the conversion of a database and its search interface from a CD-ROM to the modern age of Internet and Web. I took this project over from an ISP who failed to make it work using ColdFusion. You can probably imagine that the project had to be finished within a harsh deadline. Looking back it almost feels like a miracle that the result turned out to be quite stable and reasonably fast. At least it was a lot faster than the old-fashioned CD-ROM.

But of course that was not my very first programming project ever: as so many of my generation, I started with the famous Commodore C64. Thirty years ago, when I was ten years old, my parents surrendered to my begging and bought me one. Including the indestructible Floppy Drive 1541. I was the happiest kid alive. I recall spending the first weeks of owning the box playing every game I could get a hold on, unnerving my parents by spending what felt to them like way to much time inside and in front of the computer. Playing games turned out to be quite boring to me over time. I wished to know and understand how things work. So I started to learn BASIC and a bit later some limited amounts of Assembly as I felt limited with BASIC's syntax and its need for line numbers. It turned out that combining BASIC and Assembly was quite a powerful thing to do. But enough of retrocomputing: SYS64738!

It took me until I took computer science classes at school to consider learning another programming language: Turbo Pascal. While not originally being my language of choice – it was simply the language taught at school – I quickly moved on from the rather simple tasks given to explore the full power of the language. The idea of encapsulating and grouping certain functions into libraries, Pascal calls those units, opened a new world. Funny enough, every time I import a namespaced class in PHP, I feel reminded of these days as Pascal required to declare every unit used as well: uses qsort;.

After writing various completely useless applications and some few actually helpful tools using Turbo Pascal, I eventually and inevitably stumbled upon Object Pascal. And by that into the world of object-oriented programming. Shortly thereafter I developed my very first commercial and customer-driven application using Delphi, the next generation Object Pascal environment which was Borland's answer to Visual Basic.

When it became obvious that this Internet thing might stick around for a while, I started doing web development and ran my very own small ISP business to provide the matching hosting environments. It took only a few tries to realize that using CGI and compiled Pascal applications was not the way to go for web development. Looking around for alternatives and being active in Internet Relay Chats (IRC), I got in touch with PHP and soon joined the PHP IRC channels. Thanks to the help of the already active members of the PHP community I advanced from asking all kinds of potentially stupid questions in the beginning to supporting other beginners and advising on hosting issues.

In the beginning of 2005 I was approached by Christopher Kunz, co-author of the German PHP security book and an active member of the IRC channel #php.de, if I felt like co-presenting a PHP beginners workshop at the International PHP Conference's spring edition (which at the time was hosted in Amsterdam). It was this conference that got me rooted deeply into the PHP community and where I also ran into Sebastian Bergmann for the first time. Sebastian was already trying to tell the world it should care about software quality but hardly anyone seems to have felt like listening to him back then. I have to admit, I also totally underestimated the need and the power of automated (unit) testing. Looking back, it also took me until PHP 5 and the help of Stefan Priebsch to really grasp the meaning of object-oriented development and to think in ways that is today mostly referred to as domain-driven design.

It seems that people like my way of explaining things because conferences all over the world invite me (and keep inviting me back) to speak about PHP, security, and infrastructure. I have also written various articles in magazines as well as contributed chapters to books. I strongly believe that the PHP community is one of the best places I could have ended up being a part of. It's been a fun ride so far and I'm eagerly looking forward to the upcoming new major version.