Web

"PHP soll kein Java-Clone werden"

25.07.2002
Zeev Suraski gilt als eine der zentralen Figuren in der PHP-Community. Zusammen mit Andi Gutmans leitet er die Entwicklung des Interpreters. Mit der CW sprach er über die Zukunft der Internet-Sprache.

MÜNCHEN (COMPUTERWOCHE) - Zeev Suraski gilt als eine der zentralen Figuren in der PHP-Community. Zusammen mit Andi Gutmans leitet er die Entwicklung des PHP-Interpreters. Dieser firmiert unter dem Namen "Zend Engine", benannt nach ihrer Firma Zend Technologies. Mit Zeev Suraski sprachen Thomas Nitsche* und CW-Redakteur Wolfgang Sommergut.

CW: Die nachträgliche Erweiterung von PHP um OO-Features erinnert an ähnliche Vorgänge bei Perl. Dort gilt die mit Version 5 hinzugefügte Objektorientierung als nicht besonders geglückt und wird nun gründlich überarbeitet. Könnte auch bei PHP irgendwann eine grundlegende Überarbeitung der Sprache bevorstehen?

Suraski: Java ist nicht für alle Zwecke die beste Lösung. Für Web-Anwendungen, die sich häufig ändern, ist PHP besser geeignet.
Suraski: Java ist nicht für alle Zwecke die beste Lösung. Für Web-Anwendungen, die sich häufig ändern, ist PHP besser geeignet.

SURASKI: Die Community debattierte in der Mailing-Liste heftig über die neuen Spracherweiterungen. Es gibt viele, die PHP gerne als eine Art Java-Clone sehen würden. Aber dann kann man ja gleich Java nehmen. Wir wollen die beste Lösung für die Web-Entwicklung. PHP bleibt eine prozedurale Sprache, zumindest in der Hinsicht, dass die eingebaute Funktionalität nicht über Objekte, sondern mittels Funktionen angeboten wird.

Wir bedienen mit PHP zwei unterschiedliche Anforderungen. Für Einsteiger oder kleine Aufgaben eignet sich der vergleichsweise einfache prozedurale Ansatz. Größere Projekte hingegen lassen sich mit objektorientierter Programmierung besser bewältigen. Besonders dieser Zielgruppe kommen wir mit PHP 5 entgegen.

CW: Die Erwartungen an die OO-Features von PHP sind dank Java oder Python sicher recht hoch. Müssen Sie damit rechnen, dass Entwickler auf diese Sprachen ausweichen, wenn PHP in dieser Hinsicht nicht mithalten kann?

SURASKI: Mit PHP 4 sind wir in der Situation, dass die Sprache den Anforderungen für objektorientierte Entwicklung nicht immer genügen kann. Deswegen nahmen wir in der Version 5 wesentliche Änderungen vor. Dabei ließen wir uns nicht von einem Zwang zur Abwärtskompatibiltät einschränken. Für bestehenden Code wird die Engine aber einen Kompatibilitätsmodus anbieten.

CW: Bei den Plattformen für die Anwendungsentwicklung zeichnet sich klar eine Konzentration auf Java und .NET ab. In beiden Umgebungen diktiert die Ablaufumgebung weitgehend das Aussehen der Sprache. So unterscheiden sich C# und VB.NET eigentlich nur mehr in der Syntax. Dachten Sie bei den OO-Erweiterungen von PHP auch an die Möglichkeit, die Sprache so wie Perl oder Python eines Tages auf .NET portieren zu können?

SURASKI: Das Objektmodell von PHP 5 gleicht sehr stark jenem von Java und damit auch dem von .NET, weil dieses ja weitgehend Java kopiert. Das ist besonders nützlich bei der Integration von PHP und Java, weil Sie Java-Objekte so behandeln können, als wären sie reguläre PHP-Objekte.

CW: Darf man somit erwarten, dass PHP irgendwann auf Microsofts "Common Language Runtime" (CLR) oder in einer Java Virtual Machine (JVM) laufen wird?

SURASKI: Activestate hat ja schon Perl und Python auf .NET portiert. Allerdings scheint gerade die Übertragung von Perl auf das Microsoft-System nicht gut gelungen zu sein. Der Grund liegt darin, dass sich Perl nicht gut auf das Objektmodell der CLR abbilden lässt. Perl ist sehr dynamisch und erlaubt Dinge, die in der CLR nicht möglich sind. Außerdem erfordert die Runtime eine starke Typenbindung ("strong typing"). Auch für PHP würden die strengen Vorgaben der Laufzeitumgebungen zu erheblichen Einschränkungen führen. Eine Version von PHP, die unter einer JVM oder CLR läuft, würde zwar so ähnlich aussehen wie heute, würde sich aber nicht genauso verhalten und nicht alle gewohnten Features bieten.

CW: Perl wird in der bevorstehenden Version 6 einer gründlichen Renovierung unterzogen. Glauben Sie, dass es damit ein stärkerer Konkurrent für PHP wird?

SURASKI: Der Schlüssel zum Erfolg von PHP liegt nicht so sehr in der Sprache selbst, sondern - verglichen mit Perl - in der hervorragenden Web-Integration. So weit ich informiert bin, ändert sich Perl 6 in dieser Hinsicht nicht wesentlich. Die Community arbeitet in erster Linie daran, die Sprache selbst zu verbessern, vor allem in puncto Objektorientierung. Das versetzt sie gegenüber C# oder Java in eine bessere Lage, dürfte aber im PHP-Markt wenig bewirken.

CW: Auch PHP will mit Java konkurrieren, und zwar speziell mit Java Server Pages (JSP). Nach Ihrer Vorstellung sollte die Geschäftslogik durchaus in Java geschrieben, aber Web-Frontends in PHP statt mit JSP entwickelt werden. Glauben Sie nicht, dass es einfacher ist, gleich die ganze Anwendung durchgängig in einer Sprache zu programmieren?

SURASKI: Java ist eine sehr mächtige Sprache für unterschiedlichste Anwendungen, vom Mobiltelefon bis zu Großrechnern. Man kann damit sehr viel machen, aber gleichzeitig ist Java nicht für alle Zwecke die beste Lösung. Für Web-Anwendungen, die sich häufig ändern, ist PHP besser geeignet. Ein in PHP geschriebenes Frontend kann mit Java-Programmen auf dem Server genauso kommunizieren wie JSP. Für reine Java-Shops mag es natürlich sinnvoll sein, durchgängig mit einer Sprache zu entwickeln.

CW: Gerade für solche komplexen Projekte bietet Ihre Firma Zend Technologies eine integrierte Entwicklungsumgebung an. Planen Sie in "Zend Studio" auch Unterstützung für die Unified Modeling Language (UML)?

SURASKI: Im Moment noch nicht. Wir müssen sehen, wie gut es PHP gelingt, im Enterprise-Markt Fuß zu fassen. Wir hoffen dabei auf PHP 5, das voraussichtlich im ersten Quartal 2003 fertig wird. Die meisten kleinen Firmen nutzen UML nicht, im günstigsten Fall nehmen sie sich zwei Tage Zeit für die Designphase. Oft beginnen sie sogar ohne Design mit dem Schreiben von Code.

*Thomas Nitsche ist freier Autor in München.