PHP 8 ist da und läutet die nächste Generation der Skriptsprache ein.

0

Beschleunigung durch den JIT-Compiler
Attribute und Gewerkschaftstypen
Hintergrund zu PHP 8
Ausgereiftes Open-Source-Projekt

Die neue PHP-Version 8 wurde pünktlich zum geplanten Veröffentlichungstermin veröffentlicht.

Der Veröffentlichung gingen Jahre des Umbaus und der Erweiterung voraus, in deren Verlauf die Sprache einige alte Probleme beseitigte und grundlegende Neuerungen einführte.

Das Release wurde von Release-Managerin Sara Golemon während der von heise Developer und dpunkt organisierten Release-Konferenzen betreut.

Der verlag organisierte die Online-Konferenz betterCode() PHP 8, bei der sie auf den Release-Button klickte.

Die neue Hauptversion PHP 8 enthält einen JIT-Compiler und stellt einen Wendepunkt in der Entwicklung der Programmiersprache dar.

Es wird erwartet, dass die neue Hauptversion aufgrund der JIT für rechenintensive Programme eine deutliche Leistungssteigerung gegenüber PHP 7 bieten wird.

Entwickler können optional den Tracing-JIT-Compiler aktivieren und damit Bytecode von häufig ausgeführten Passagen in nativen Maschinencode umwandeln.

Nach Angaben der Herausgeber führt diese Methode zu einer effizienteren Ausführung des Bytecodes, als dies mit einer zwischengeschalteten virtuellen Maschine möglich wäre.

Die größte Neuerung ist die Just-In-Time (JIT)-Compilerstrategie, die den Zwischencode ableitet und zur Laufzeit in architekturabhängigen Maschinencode umwandelt – nicht mehr über die virtuelle Maschine von Zend, sondern “just in time” direkt über die CPU.

Das Team hatte bereits seit längerer Zeit in einem eigenen Entwicklungszweig an der JIT-Unterstützung in PHP gearbeitet.

Das PHP-Team erweiterte auch das Schriftsystem für PHP 8 und fügte Union Types hinzu, die aus Programmiersprachen wie TypeScript, C/C++ und Rust bekannt sind.

Dabei handelt es sich um eine Sammeldeklaration von zwei oder mehr Typen, die je nach Situation verwendet werden können (jeder der als möglich deklarierten Typen kann verwendet werden, andere nicht).

Darüber hinaus hat das Team hinter PHP Attribute in die Sprache eingeführt, die es erlauben, Metadaten für Code-Einheiten direkt in die Deklaration einzubetten.

Das Konzept ist aus Java und C# bekannt (Annotationen in Java, Attribute in C#).

Aufgrund des Fehlens einer echten Syntax für Metadaten haben Frameworks (wie Symfony), Bibliotheken (wie Doctrine) und Werkzeuge (wie PHPUnit) Metadaten bisher strukturiert aus Kommentarblöcken freigeschaltet und über Pseudosprachen zugänglich gemacht.

PHP (für Nostalgiker: “Personal Home Page Tools”, ab Version 3 “PHP: Hypertext-Präprozessor”) ist 25 Jahre alt.

Das 1995 (etwa zur gleichen Zeit wie Java und JavaScript) von Rasmus Lerdorf gestartete Open-Source-Projekt war ursprünglich für die Erstellung von Websites gedacht, wobei der Parser den Code Zeile für Zeile ausliest.

Beginnend mit PHP 4 wandelte ein Compiler den Programmcode in Bytecode um, der im nächsten Schritt zu ausführbarem Code wurde.

Seit Version 5 bietet PHP zunehmend Objektorientierung.

Eine Hürde war die anfänglich fehlende skalare Typinformation – da in PHP geschriebener Programmcode ohne Typinformation ausführbar ist, kann nicht immer typspezifischer Bytecode generiert werden.

Der eigentliche Datentyp ist immer erst zur Laufzeit bekannt und kann sich beim erneuten Durchlaufen wieder ändern.

Eine weitere Neuerung ist, dass PHP 8 seit der Alpha-Version im Juni JSON-Dateien unterstützt.

Bei einer älteren Codebasis kann der Umstieg auf PHP 8 zu einem erhöhten Migrationsaufwand aufgrund von Deprecations führen, aber angesichts der möglichen (nach Angaben von PHP-Experten bis zu zehnfachen) Beschleunigung kann sich dies je nach Rechenintensität eines Projekts lohnen.

Update-Hinweis [27.

11.

2020]: In der 7.

Paragraph 7 enthält einen Tippfehler, das Wort “Parser” ist nun hinzugefügt.

Weitere Einzelheiten über die Veröffentlichung und die brechenden Änderungen finden Sie im PHP-Blog.

Release-Managerin Sara Golemon hatte heise Developer während einer Konferenz zu PHP 8 einen Workshop-Einblick gegeben – im Interview erzählt sie von den Hürden, die es zu überwinden galt, und berichtet über die neuen Features.

Heute gilt PHP als ausgereifte Programmiersprache – sowohl projekt- als auch anwendungsseitig hat das ursprüngliche Hobbyprojekt inzwischen eine Professionalisierung erfahren und wird von Unternehmen wie Facebook und Microsoft unterstützt.

Allerdings steht keine einzelne Firma oder Stiftung hinter dem Projekt, sondern eine Reihe von großen und kleinen Sponsoren haben die Entwicklung über kürzere oder längere Zeiträume vorangetrieben.

Vor allem Facebook hat sich inzwischen mit PHP beschäftigt und den Sprachumfang um Typinformationen erweitert, Microsoft finanzierte zwei Entwicklerpositionen innerhalb der PHP-7-Entwicklung.

Abgesehen davon ist PHP ein Gemeinschaftsprojekt geblieben, und die Gemeinschaft unterstützt PHP auch nach dem Rückzug größerer Sponsoren weiterhin.

..

Share.

Leave A Reply