• Happy Birthday! PHP wird 15 Jahre

    von am 8. Juni 2010

    Als Sir Tim Berners-Lee 1989 die Grundlagen des World Wide Web legte war nicht abzusehen zu was das führen wurde. Ein System, innerhalb des Internet, mit der Möglichkeit Texte, die aufeinander verlinken, zugänglich zu machen. Nun, rund 20 Jahre später, ist das WWW ein Kernstück des Internets und zentraler Kanal zum Austausch von Informationen – sowohl für Firmen als auch ganz normale zwischenmenschliche Kommunikation.

    Mit dem Web, in seinem ursprünglichen Zustand, wäre das wohl auch nicht gegangen. Das Web bestand aus statischen Seiten. Recht bald erkannte man, dass statische Seiten ja nett sind, man aber gewisse Inhalte nicht jedem zugänglich machen will oder einen Rückkanal will. So entstand 1993 das Common Gateway Interface (CGI) als ein standardisierter Weg, damit ein Web Server die Abarbeitung einer anfrage an ein externes Programm – oft in Perl entwickelt – geben konnte. Das funktionierte recht gut, nur musste jedes Programm, von jedem Entwickler, gewisse Grundfunktionalitäten, wie das entgegen nehmen von Formulardaten, zur Verfügung stellen.

    Irgendwann zu der Zeit kam auch der in Qeqertarsuaq (Godhavn) auf der grönländischen Insel Disko Island geborene Rasmus Lerdorf mit dem Internet und dem WWW in Berührung. Auf der Suche nach einem Job stellte er seinen Lebenslauf online wollte aber mitprotokollieren, wer darauf zugreift. Dazu entwickelte er ein paar Perl-Scripte, die Zugriffe aufzeichnen. Über die Zeit erweiterte er diese Scripte, stellte aber fest, dass der Weg nicht optimal ist und implementierte eine Templatesprache in C.

    Am 8. Juni 1995 – also genau heute vor 15 Jahren – stellte Rasmus Lerdorf dann in der Newsgroup comp.infosystems.www.authoring.cgi seine Lösung, die Personal Home Page Tools, vor:

    These tools are a set of small tight cgi binaries written in C. They perform a number of functions including:

    • Logging accesses to your pages in your own private log files
    • Real-time viewing of log information
    • Providing a nice interface to this log information
    • Displaying last access information right on your pages
    • Full daily and total access counters
    • Banning access to users based on their domain
    • Password protecting pages based on users’ domains
    • Tracking accesses ** based on users’ e-mail addresses **
    • Tracking referring URL’s – HTTP_REFERER support
    • Performing server-side includes without needing server support for it
    • Ability to not log accesses from certain domains (ie. your own)
    • Easily create and display forms
    • Ability to use form information in following documents
    http://groups.google.com/group/comp.infosystems.www.authoring.cgi/msg/cc7d43454d64d133?dmode=source&hl=en

    Die initiale Funktionalität war recht beschränkt aber die Idee einer Web-Spezifischen Sprache war geboren. So wurde relativ bald PHP/FI 2.0 – der Name PHP/FI, mit FI für Forms Interpreter, sollte eine Anspielung auf den TCP/IP Protokollstack sein – entwickelt. Auch wenn sich die Syntax an manchen Stellen merklich unterscheidet ist die Verwandtschaft doch klar zu erkennen.

    <?
    /* Request Variable sind immer global verfügbar */
    echo "Hi $name, you are $age years old!<p>";
    
    if($age>50);
      echo "Hi $name, you are ancient!<p>";
    elseif($age>30);
      echo "Hi $name, you are very old!<p>";
    else;
      echo "Hi $name.";
    endif;
    
    mysql_Connect("localhost", "root", "");
    mysql_SelectDb("test");
    /* MAGIC_QUOTES - oh ja! */
    mysql("INSERT INTO user VALUES('$name', '$age')");
    >

    Um PHP/FI 2.0 scharrte sich eine Gruppe Anwender und Leute, die Rasmus mit Patches versorgten. Dabei waren auch zwei Studenten am Technion in Haifa, Andi Gutmans und Zeev Suraski. Im Rahmen ihres Studiums hatten die einen Web-Shop zu entwickeln sind dazu auf PHP/FI 2.0 gestoßen merkten aber bald, dass das für ihre Anforderungen zu beschränkt war.

    Damit die Beschränkungen aufgehoben wurden entstand um 1997 mit PHP 3.0 eine Sprache, die doch merkliche Ähnlichkeit zu PHP wie wir es heute kennen hat.

    <?php
    echo "Hi $name, you are $age years old!<p>";
    
    if($age>50) {
      echo "Hi $name, you are ancient!<p>";
    } elseif ($age>30) {
      echo "Hi $name, you are very old!<p>";
    } else {
      echo "Hi $name.";
    }
    
    $m = mysql_connect("localhost", "root", "");
    mysql_select_db("test", $m);
    mysql_query("INSERT INTO user VALUES('$name', '$age')");
    ?>

    Auch wenn diese Version Klassen einführte waren die wenig mehr als ein Weg um Funktionen zu gruppieren.

    Aber auch da zeigten sich relativ bald schwächen. So war der Interpreter recht langsam, das Klassenkonzept nicht sehr weit gedacht und so manches grundlegende Web-Problem ungelöst.

    So entstand recht bald PHP 4, das bereits 1998 veröffentlicht wurde. PHP 4 brachte nicht nur so elementare Dinge wie Sessions sondern auch eine Vererbung für das Klassenmodell und einen Interpreter, der kein reiner Interpreter mehr war sondern ein so genannter Interpiler – d.h. das Skript wurde vor dem Ausführen einmal komplett in ein Zwischenformat im Speicher kompiliert. Mit der Version gelang PHP definitiv der Durchbruch
    im Web und nahezu jede serverseitig dynamische im web nutzte PHP.

    Mit PHP 5, das 2004 erschien, wurde aus PHP, einer einfachen Scriptingsprache, eine vollwertige Objektorientierte Sprache mit Unterstützung für Dinge wie Interfaces, Sichtbarkeit und Referenz-Semantik für Objekte. Mit PHP 5.3 als aktuelle Version von PHP bietet PHP nun Dinge wie namespaces und anonyme Funktionen und ist auf der Höhe der Zeit. Auch wenn der nächste Evolutionäre Schritt in Arbeit ist.

    15 Jahre. Eine Lange Zeit für eine Software. Happy Birthday PHP!

    Johannes Schlüter is Mitglied des MySQL Engineering Teams bei Sun Microsystems, einer 100igen Tochter der Oracle Corporation, und ist Entwickler im PHP Entwicklungsteam wo er die Rolle des Release Managers ...

    Zum Profil von Johannes Schlüter

    10 Kommentare »


    • Nils Langner
      am 8. Juni 2010 um 07:49 Uhr

      Alles gute zum Geburtstag auch von mir und vielen Dank an Johannes für den Artikel.


    • Mark
      am 8. Juni 2010 um 09:05 Uhr

      Happy Birthday! Gibt es jemanden unter euch, der schon seit 15 Jahren PHP entwickelt? Bei mir sind es gerade mal 8 Jahre.


    • Steffie
      am 8. Juni 2010 um 09:08 Uhr

      Happy Birthday PHP und DANKE Johannes!


    • Max Stockner
      am 8. Juni 2010 um 09:27 Uhr

      @mark nein, 15 jahre kenn ich es auch noch nicht. bei mir sind es “gerade mal” 9 jahre.

      alles jute zum geburtstag und auf weitere spannende 15 jahre! danke an alle core-entwickler und auch die community :)


    • Sven
      am 8. Juni 2010 um 10:10 Uhr

      Danke an Johannes für den tollen Artikel.

      Ich komme auch nur auf 9 oder 10 Jahre PHP. Vorher habe ich auch noch in Perl CGI-Scripte entwickelt. Das waren noch Zeiten ^^


    • Ilja
      am 8. Juni 2010 um 10:13 Uhr

      Bei mir sind es etwa 13 Jahre … Herzlichen Glückwunsch!


    • Volker Dusch
      am 8. Juni 2010 um 11:12 Uhr

      Hach, das waren noch Zeiten als register_globals der default war.

      OOP: done, Frameworks und CI: `done`, Typsicherheit: incoming. Ja, PHP wird “erwachsen”.

      Bin gespannt wie es weitergeht !


    • Ralf Eggert
      am 9. Juni 2010 um 07:42 Uhr

      Boah bin ich alt. Komme schon auf 12 Jahre PHP. Perl war mir damals zu affig… ;-)


    • Links - prox42: Webentwicklung und Selbständigkeit
      am 9. Juni 2010 um 09:33 Uhr

      [...] schreiben heise.de und das PHP Magazin und einen Geburtstagsgruß. Johannes Schlüter von “PHP hates me” gibt ebenfalls einen [...]


    • hakre on wordpress
      am 9. Juni 2010 um 13:10 Uhr

      PHP Turns 15!…

      Congrats. 15 Years of PHP. On 8th of June 1995 the whole “mess” started as “Personal Home Page Tools (PHP Tools)” and turned the internet into a crowd of developers – Pretty promising! Seriously, it’s impressive how …

    RSS Feed für Kommentare zu diesem Artikel. TrackBack URL

    Hinterlasse einen Kommentar

    Werbung
    PHP Magazin
    Ausgabe 02/2010

    Dieses Mal mit Artikeln zu den Themen OpenSocial und Apache Shindig, Graphentheorie, Smarty3

    t3n
    Ausgabe 19

    Social Media (R)evolution. Weitere Themen sind noSQL, Crowdsourcing ...

    PHP Journal
    Ausgabe 2/2010

    PHP & Windows optimal nutzen, die besten PHP-CMS im Überblick, Google-API mit Zend Framework nutzen.

    Wir wurden schon öfters gefragt, ob man uns nicht irgendwie unterstützen kann. Die Antwort war immer einfach: Klar! Am einfachsten ist es eure nächsten Einkäufe bei Amazon über unsere Link abzuwickeln. Damit würdet ihr uns schon sehr helfen. Über Co-Autoren freuen wir uns aber noch mehr.