PHP 8 im Experten-Check: "Der erwartete harte Bruch mit der Vergangenheit"
PHP-Experte Arne Blankerts über die für ihn wichtigsten Features der neuen Hauptversion der Programmiersprache.
- Madeleine Domogalla
Am heutigen Donnerstag, 26. November 2020, erscheint die achte Hauptversion der Programmiersprache PHP. Im Rahmen der betterCode() PHP 8, dem Online-Event zum Release, hat heise Developer die Speaker um ihre Einschätzung gebeten. Neben Sara Golemon hat sich auch Arne Blankerts zu den für ihn wichtigsten Features von PHP 8 geäußert. Darüber hinaus macht er deutlich, an welchen Stellen er Probleme mit der neuen Hauptversion sieht.
Arne Blankerts ist Mitbegründer von The PHP Consulting Company (thePHP.cc) und hat schon vor Jahren IT-Lösungen geschaffen, die ihrer Zeit weit voraus waren. Er hilft, nachhaltige Software und maßgeschneiderte Infrastrukturen zu schaffen, und findet Sicherheitslücken mit fast magischer Intuition. In seiner Freizeit liest er Fantasy-Bücher und kocht gerne.
JIT-Compiler und Attribute als größte Neuerungen
heise Developer: PHP 8 steht in den Startlöchern: Welche Neuerungen sind für dich besonders spannend und warum?
Arne Blankerts: Die beiden größten und augenscheinlichsten Neuerungen sind mit Sicherheit die Einführung des JIT-Compilers und die durch Benjamin Eberlei initiierten Attribute. Auch wenn ich die anfängliche Syntax für die Attribute ziemlich gruselig fand, haben wir jetzt glücklicherweise eine Rust-Style-Syntax, um zusätzliche Annotationen im Code anzugeben, deren Regeln, etwas vereinfacht formuliert, ebenfalls in Code spezifiziert sind. Ich bin gespannt, wie schnell diese Attribute die klassischen DocBlock-Annotationen ablösen können – und ob überhaupt. Eine erste Implementierung beispielsweise für PHPUnit ist bereits in Arbeit, und auch JetBrains, den meisten vermutlich als Hersteller der Entwicklungsumgebung PhpStorm bekannt, hat gerade ein Paket veröffentlicht, dass die von der IDE verstandenen Attribute für andere Projekte nutzbar macht.
Mich freuen aber vor allem auch vermeintliche Kleinigkeiten: Das neue match
als quasi Alternative zum klassischen switch
finde ich sehr spannend, und die hinzugekommene Unterstützung von mixed
und union types
wird sicherlich vieles einfacher machen – genauso wie der Null-Safe-Operator ?->
. Wenngleich ich es ansonsten immer spannend finde, wie sich PHP aus anderen Sprachen und Ökosystemen Dinge herauspickt und übernimmt, die Unterstützung von Named Parametern
und "constructor property promotion" sehe ich aktuell noch eher negativ. Mal schauen, ob sich meine Meinung hier noch ändert.
heise Developer: Welche Bedeutung hat die neue Hauptversion für die Community beziehungsweise die Programmiersprache an sich?
Blankerts: Neben der quasi schon obligatorischen Leistungssteigerung, vor allem dank des neuen JIT-Compilers, ist PHP 8 dieses Mal der erwartete harte Bruch mit der Vergangenheit. Zusammen mit der weiteren Abrundung des Typsystems und den erwähnten Attributen zeigt PHP aber auch, dass es eine durchaus modern aufgestellte Sprache mit eben einer schnellen und stabilen Laufzeitumgebung sowie einem zunehmend leistungsfähigeren Ökosystem ist.
Irgendwie herrscht in der PHP-Welt ja immer der Glaube vor, man müsste sich vor anderen, vermeintlich professionelleren Sprachen verstecken. Bei Licht betrachtet gibt es dafür aber – eigentlich seit Jahren – gar keinen Grund mehr. Ich finde, PHP 8 unterstreicht das einmal mehr sehr deutlich.
Probleme mit PHP 8
heise Developer: In welchem Bereich siehst du Probleme mit PHP 8?
Blankerts: Wenn man sich die Liste der Änderungen so ansieht, dann fällt vermutlich schnell auf, dass mit PHP 8.0 scheinbar unendlich viele Dinge entfernt und nur vergleichsweise wenige neue Features eingeführt werden. Das wird viele Projekte mit zum Teil sehr alter Codebasis vor gewaltige Probleme stellen. So hart gab es das, wenn überhaupt, zuletzt mit dem Wechsel von PHP 4 zu PHP 5.
Im Rahmen der betterCode() PHP 8 hält Arne Blankerts am 15. Dezember 2020 den Workshop "Der PHP Stack in 2021: Modern, Skalierbar und Flexibel". Teilnehmerinnen und Teilnehmer lernen, einen modernen und skalierbaren PHP-Stack aufzusetzen, diesen zu betreiben und passend auf verschiedene Anforderungen hin zu optimieren. Nähere Informationen finden sich auf der Webseite.
So hat beispielsweise ganz aktuell ein Kompatibilitäts-Report für das WordPress Projekt mehr oder weniger offen eingestanden, dass man nicht verlässlich sagen kann, ob und wann WordPress mit PHP 8 funktionieren wird. In jedem Fall aber wäre beziehungsweise wird es viel Arbeit. Hinzu kommt, dass gerade solche Projekte nur mäßig bis gar nicht von den Verbesserungen in PHP 8 profitieren: Die neuen syntaktischen Möglichkeiten kann man aus Kompatibilitätsgründen mit zum Teil ewig alten Versionen der Sprache nicht nutzen, und die Leistungssteigerung des JIT wird bedingt durch die bei Legacy-Anwendungen häufig gefundene Datenbankabhängigkeit fast gänzlich verpuffen, da PHP quasi nur schneller wartet.
(mdo)