Open Source aber nicht linientreu: PHP 2007

EnterpriseManagementSoftware

Gerade ist die ‘ZendCon 2007’ in San Francisco zu Ende gegangen. Unter anderem wurde dabei eine Kooperation mit Microsoft vertieft. Diese hat zum Ziel, die Performance von PHP-Anwendungen unter Windows zu erhöhen.

Die Skriptsprache PHP (rekursives Backronym für “PHP: Hypertext Preprocessor”) wurde 1995 von Rasmus Lerdorf entwickelt. Der Begriff stand damals noch für Personal Home Page Tools und war ursprünglich eine Sammlung von Perl-Skripten, die Rasmus Lerdorf zur Protokollierung der Zugriffe auf seinen Online-Lebenslauf geschrieben hatte. Bald schuf Lerdorf jedoch eine größere Umsetzung in C. In dieser Programmiersprache wird PHP heute noch entwickelt.

PHP 3 wurde von Andi Gutmans und Zeev Suraski neu geschrieben, da das inzwischen erschienene PHP/FI 2 ihrer Meinung nach für eCommerce zu schwach war. Lerdorf kooperierte mit Gutmans und Suraski, und so wurde die Entwicklung von PHP/FI eingestellt. Obwohl PHP 3 für den professionellen Einsatz noch keine allzu große Funktionsvielfalt bot beziehungsweise einige Schwächen aufwies, brachte es die Verbreitung von PHP bedeutend voran.

silicon.de sprach mit Suraski, mittlerweile Chief Technology Officer von Zend Technologies.

silicon.de: Herr Suraski, können Sie uns bitte die Situation im Jahr 1997 beschreiben, als Sie und Herr Gutmans an PHP3 gearbeitet haben?

Suraski: Ich war Student am Technion, dem israelischen Institut für Technologie, und arbeitete gerade zusammen mit meinem Universitätspartner Andi Gutmans an einem Projekt für einen webbasierten Warenkorb. So ein Online-Warenkorb war damals modernste Softwaretechnologie […] Nachdem wir durch einen Arbeitskollegen von PHP/FI 2.0 gehört hatten, setzten wir es auch für unser Projekt ein, stießen aber nur wenige Stunden nach dem ersten Versuch auf einige Fehler. Wir sahen uns den Quellcode an, stellten überrascht fest, dass dieser nicht die Standardmethoden zur Erzeugung einer Sprache nutzte, und entschlossen uns, das Ganze von Grund auf neu zu schreiben. Während dieser Überarbeitung versuchten wir, eine voll ausgestattete Sprache zu schaffen, die die Elemente moderner Sprachen wie Java und C/C++ umfasste. Es sollte Ausdrücke, eine berechenbare Auswertung, standardmäßige verschachtelbare Kontrollstrukturen und auch eine simple Form der Objektorientierung geben. Mehrere Monate später hatten wir eine lauffähige Version geschaffen, die erheblich mächtiger, schneller und zuverlässiger war als PHP/FI (eine vollständige Sprache). Wir nahmen Kontakt zu Rasmus auf, um ihn zu überzeugen, diese neue Codebasis zum offiziellen Nachfolger von PHP/FI 2 zu machen. Er stimmte zu, und so war PHP geboren, das recht schnell größere Beliebtheit erreichte als PHP/FI.

Ich glaube, Andi und ich waren die einzigen Menschen auf der Welt, die nicht damit zufrieden waren, aber das ist wohl ganz normal, denn wir wussten ja, dass man es noch viel besser hätte machen können. Anstatt sich also zurückzulehnen und den Erfolg von PHP 3 zu genießen, kehrten wir schon wenige Monate nach der Einführung von PHP 3 zurück an den Computer und entwickelten eine neue Script-Engine, die genau die gleiche Sprache wie PHP 3 spricht, aber viel schneller und noch zuverlässiger war. Anfang 1999 stellten wir die neue Script-Engine vor, für die wir einige Buchstaben unserer Vornamen Andi und Zeev gemischt und sie ‘Zend’ getauft hatten. Etwa ein Jahr später kam PHP 4 heraus.

Rückblickend glaube ich, dass PHP von anderen Sprachen verdrängt worden wäre, wenn wir nicht sofort nach Veröffentlichung von PHP 3 mit der Arbeit an PHP 4 begonnen hätten. Es wäre einfach nicht schnell und nicht zuverlässig genug für Spitzenanforderungen in großen Anwendungen gewesen.

silicon.de: Worin bestand Ihre Motivation?

Suraski: Das ist schwer zu erklären. Ich glaube, die ehrliche Antwort lautet, dass sowohl Andi als auch ich sehr viel Spaß bei der Implementierung einer Sprache von Grund auf hatten, da wir so unser Wissen in die Praxis umsetzen konnten. Nachdem PHP dank aller beteiligten Entwickler erst einmal in Schwung gekommen war – es war sozusagen eine sich selbst speisende Reaktion -, war es interessant zu sehen, wohin wir als Nächstes gehen könnten und wie man PHP noch weiter ausbauen kann.

silicon.de: Wie ist Ihre Beziehung zu Rasmus Lerdorf?

Suraski: In der Vergangenheit gab es Höhen und Tiefen, was aber nichts Ungewöhnliches bei eigenwilligen Menschen ist, die zusammen an einem Projekt arbeiten. Ich glaube, dass wir heute insgesamt eine gute berufliche Beziehung zu Rasmus haben, da wir alle, einschließlich PHP selbst, gereift sind.

silicon.de: PHP 6 befindet sich gerade in der Entwicklung – wie sehr sind Sie an diesem Prozess beteiligt?

Suraski: Eigentlich gar nicht. Ich habe das PHP-4-Projekt geleitet und war auch in die Entwicklung von PHP 5 noch stark involviert, aber aus der aktiven Entwicklung von PHP 6 halte ich mich heraus. Ich mache heute andere Dinge – ich bestimme zwar die Richtung mit, in die PHP geht, bin aber nicht an der aktiven Entwicklung beteiligt.

silicon.de: Wie geht es voran?

Suraski: Auch wenn ich nicht direkt am Entwicklungsprozess mitarbeite, ist es doch offensichtlich, dass PHP 6 schwierig ist. Es ist an sich schon keine einfache Aufgabe, die Unicode-Unterstützung richtig hinzubekommen, aber wenn man es mit den Milliarden von Codezeilen für PHP kombiniert, die aufgrund von Kompatibilitätsproblemen beschädigt sein können, ist es fast unmöglich. Wie PHP 6 genau aussehen wird, steht noch nicht endgültig fest, aber wir arbeiten daran.

silicon.de: Womit sind Sie selbst im Moment beschäftigt?

Suraski: Neben der reinen PHP-Entwicklung leite ich das Team für Produktstrategie/Management bei Zend, das für das kommerzielle Angebot von Zend verantwortlich ist (Studio, Core, Platform). Das ist eine sehr interessante Position, bei der ich mit vielen PHP-Anwendern zusammentreffe, die meistens in sehr anspruchsvollen Umgebungen arbeiten, also in großen Firmen oder Regierungsstellen. Es ist faszinierend zu sehen, wo PHP überall Zugang gefunden hat – und was die Leute damit und mit den Tools von Zend alles tun.