Zukunftsfähigkeit von PHP: Interview mit André Rust

Das folgende Interview zum Thema "Zukunftsfähigkeit von PHP" führte Tobias Genge im Rahmen einer Seminararbeit mit André Rust (Head of Emergency Coders).
Herr Rust, vielen Dank, dass Sie sich für ein Interview zum Thema "Zukunftsfähigkeit von PHP in der Webprogrammierung" bereit erklärt haben. Sie und ihr Team setzen bei Ihren Projekten verschiedene Webtechnologien ein. Kommt auch PHP zum Einsatz und wenn ja für welchen Aufgabenbereich? Rust: PHP kommt bei uns zum Einsatz, wenn der Kunde es explizit fordert oder der Rahmen des Projektes nicht skalierbar ist für andere Sprachen. In jedem Falle würde ich nicht reines PHP, sondern ein PHP-Framework einsetzen. Oft wird PHP als eine Programmiersprache für kleinere Anforderungen bezeichnet. Wie stehen Sie dazu? Würden Sie PHP auch für größere Projekte verwenden? In einer Kombination mit einem Framework ist PHP durchaus auch für größere Projekte geeignet. Allerdings nur in Verbindung mit anderen Technologien. Beispielsweise mit Ruby. Ruby ist im Bereich der objektorientierten Programmierung deutlich durchdachter als PHP und eignet sich daher für komplexere Anforderungen. Wo sehen Sie die Stärken in PHP, wo die Schwächen? Die klare Stärke von PHP ist, dass PHP quasi bei jedem Hoster zur Verfügung steht. Zudem gibt es viele Entwickler, die PHP in einem gewissen Grad beherrschen. Letzteres kann aber auch zum Nachteil werden. Da PHP eine Einsteigersprache ist, bewegen sich viele "Hobby-Coder" auf dem Markt, die für professionelle Projekte nicht geeignet sind. Eine Schwäche sehe ich auch in der Performance. Bei größeren Datenmengen sind interpreterbasierte Skriptsprachen wie PHP ungeeignet. Hier muss auf kompilierte Sprachen zurückgegriffen werden. Wie effizient lässt mit PHP entwickeln? Welche Hindernisse gibt es bei größeren Entwicklerteams? Es hängt vom eigenen Anspruch und dem Knowhow der Entwickler ab. PHP eignet sich genau wie JAVA für eine solide Software-Entwicklung. Bei PHP und Java kann jedoch nur sehr schwer von Rapid Prototyping oder Rapid Applikation Management gesprochen werden. Aus diesem Grund würde ich aus eigenen Erfahrungen Ruby on Rails bevorzugen. Rails unterstützt beispielsweise Scaffolding, mit dem sehr schnell in einer MVC Architektur komplexe datenbankbasierte Module halbautomatisch generiert werden können, was die Zeit für die Grundprogrammierung entscheidend reduziert und mehr Zeit für Qualitätsmanagement und Testing freimacht. Gibt es für PHP nicht auch Möglichkeiten die Programmierung effizienter zu gestalten? Sie haben bereits mehrfach die PHP Frameworks erwähnt. Welchen Beitrag leisten die PHP Frameworks genau? Die Frameworks zwingen den Entwickler in einen Programmier-Standard hinein was die gemeinsame Arbeit an Software erleichtert. Mit Tools wie ZEND gibt es auch die Möglichkeit eine effizientere Softwareentwicklung mit PHP umzusetzen. Doch auch mit Zend besteht ein wesentlicher qualitativer Unterschied zu Rails. Wie einfach lassen sich große PHP Projekte warten? Die Wartbarkeit hängt von der Qualität der Software-Umsetzung ab und davon, ob ein Framework benutzt worden ist. Weiterhin beeinflusst die vorangegangene Qualitätskontrolle, Dokumentation und die Fähigkeit des Teams wie gut die Wartbarkeit durchgeführt werden kann. Bei entsprechender Projektqualität wird auch eine größere PHP Software wartbar sein. Immer wieder steht die Sicherheit von PHP in der Kritik. Wie schätzen Sie die Sicherheit von PHP ein? Die Programmiersprache ist nur ein Werkzeug. Ein guter Programmierer vermeidet von vorne herein, dass schlechte Codestrukturen entstehen. Die Sicherheit muss also letztendlich vom Programmierer sichergestellt werden. Es ist richtig, dass es bei PHP gewisse Einfallstore gibt. Beispielsweise die Konfigurationsdatei „php.ini“. In dieser können Parameter gesetzt sein, die beispielsweise das Infiltrieren eines Servers von einem externen Server aus ermöglichen kann. Die größte Gefahr sehe ich jedoch nicht in der Programmiersprache selbst, sondern durch nicht richtig umgesetzte Softwarekonzepte und unmodifizierte Standardservereinstellungen. PHP eignet sich zur Erstellung sicherer Applikationen. Die Entwicklung ist aber schwieriger als mit anderen Technologien. Stichwort Interoperabilität: Sie verwenden Java, Ruby on Rails und diverse Datenbank Systeme. Wie gut arbeitet PHP mit diesen Technologien zusammen? PHP bietet ausreichend Libaries und Methoden um beispielsweise in serviceorientierten Strukturen (SOA), mit JAVA oder SAP System zu kommunizieren. Ob die Schnittstellen sicher sind, oder ob es "Spaß" macht diese zu schreiben sei dahingestellt. Wie schätzen Sie Erlernbarkeit von PHP ein und ist diese für Anfänger und Profis gleichermaßen geeignet? PHP ermöglicht einen schnellen Einstieg in die Programmierung. Dies eröffnet aber auch die große Gefahr, dass ein Programmier-Einsteiger sich von vornherein nicht mit fortschrittlichen Aspekten der höheren Programmierung beschäftigt. Z.B. Objektorientierung oder bestimmten Algorithmen. Es ist natürlich trivialer einige Skripte per include zusammen zu führen als gleich eine hochwertige objektorientierte Struktur aufzusetzen und erst später ein Ergebnis zu sehen. Aber PHP unterstützt doch auch objektorientierte Programmierung? Es gibt Programmiersprachen wie SCALA, die beispielsweise die funktionale und die objektorientierte Programmierung unterstützen. Ähnlich ist es auch mit PHP. PHP hat nur den Nachteil dass die Objektorientierung erst später in die Sprache aufgenommen wurden ist. In einer sehr simplen Form ab der PHP Version 4. Man kann sagen, dass PHP Objektorientierung versteht. Wenn wir PHP aber einer Programmiersprache wie Smalltalk gegenüberstellen, sehen wir qualitative Unterschiede. Smalltalk arbeitet ausschließlich mit Objekten. Das Konzept der Objektorientierung ist in Smalltalk demnach im Gegensatz zu PHP vollständig implementiert. Der Entwickler wird bei Smalltalk geradezu gezwungen ausschließlich mit Objekten zu arbeiten. Kommen wir zur Zukunft von PHP. Wenn ich Ihnen sagen würde, PHP ist in 5 Jahren tot. Was würden Sie mir erwidern? Ich würde dies verneinen. Es gibt eine zu große Community, die PHP nutzt und es gibt viele Firmen die "kleine schmutzige Softwarelösungen" brauchen. Aber PHP wird auch langsam erwachsen. Wenn gleich die PHP Frameworks mit Abstand nicht mit denen von Rails oder Spring mithalten können. Der Markt der PHP-Entwickler, wird sich jedoch etwas konsolidieren. Denn beispielsweise wird das CMS Typo 3 künftig die aspektorientierte Programmierung im neuen Kern implementieren, was bedeutet, dass PHP-Hobbyprogrammierer bei den alten Konzepten bleiben werden, die jedoch wahrscheinlich in 5 Jahren ausgestorben sein werden.
Hintergrund Emergency Coders:Die Emergency Coders ist ein Zusammenschluss von Software-Entwicklern und -Architekten. Die Bezeichnung "Emergency" hat dabei eine doppelte Bedeutung. Das Team übernimmt einerseits besonders zeitkritische Projekte, andererseits soll mit dem Begriff "Emergency" eine soziale Verantwortung ausgedrückt werden. So planen die Emergency Coders die Gründung einer Stiftung für traumatisierte Kinder und erstellen in Zusammenarbeit mit verschiedenen Firmen und Organisationen ein Umweltportal im Zuge des Projektes "Hamburg Umwelthauptstadt 2011".

Weitere interessante Artikel: