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

  • PHP

  • mad.de
  • 10469 Aufrufe 0 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

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

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

    Die neue PHP-Version 8 ist pünktlich zum geplanten Releasedatum erschienen. Der Veröffentlichung ist ein jahrelanger Um- und Ausbau vorausgegangen, in dessen Verlauf die Sprache sich einiger Altlasten entledigt und grundlegende Neuerungen eingeführt hat. Die Freigabe erfolgte durch Release-Managerin Sara Golemon während der von heise Developer und dpunkt.verlag organisierten Online-Konferenz betterCode() PHP 8, während der sie den Freigabe-Button klickte.

    Beschleunigung durch den JIT-Compiler
    Größte Neuerung ist mit dem Just-in-Time-Compiler (JIT) eine Compilerstrategie, die Zwischencode ableitet und diesen zur Laufzeit in architekturabhängigen Maschinencode verwandelt – nicht mehr über die Zend Virtual Machine, sondern "just in time" direkt über die CPU. An der JIT-Unterstützung in PHP hatte das Team seit geraumer Zeit in einem separaten Entwicklungszweig gearbeitet.

    Die neue Hauptversion soll durch den JIT bei berechnungsintensiven Programmen mit einer deutlichen Performancesteigerung gegenüber PHP 7 aufwarten. Entwickler können den Tracing-JIT-Compiler optional zuschalten und mit ihm Bytecode häufig ausgeführter Passagen in nativen Maschinencode überführen. Diese Methode führt laut Herausgebern zu einer effizienteren Ausführung des Bytecode, als eine zwischengeschaltete virtuelle Maschine sie bieten könnte.

    Attribute und Union Types
    Außerdem hat das Team hinter PHP Attribute in die Sprache eingeführt, mit denen sich Metadaten für Codeeinheiten direkt in die Deklaration einbetten lassen. Das Konzept ist von Java und C# bekannt (Annotationen in Java, Attribute in C#). Mangels echter Syntax für Metadaten haben bislang Frameworks (wie Symfony), Bibliotheken (wie Doctrine) und Werkzeuge (wie PHPUnit) Metadaten aus Kommentarblöcken strukturiert aufgeschlossen und über Pseudosprachen zugänglich gemacht.

    Das PHP-Team hat für PHP 8 auch das Typsystem erweitert, hinzugekommen sind die Union Types, die aus Programmiersprachen wie TypeScript, C/C++ und Rust bekannt sind. Dabei handelt es sich um eine Sammeldeklaration von zwei und mehr Typen, die sich dann je nach Situation verwenden lassen (jeder der als möglich deklarierten Typen kann zum Zuge kommen, andere nicht).

    Eine weitere Neuerung ist, dass PHP 8 seit der Alpha-Ausgabe im Juni JSON-Dateien unterstützt. Bei einer älteren Codebasis kann der Umstieg auf PHP 8 durch Deprecations zu erhöhtem Migrationsaufwand führen, der sich angesichts der möglichen (laut PHP-Experten bis zu zehnfachen) Beschleunigung allerdings je nach Rechenintensität eines Projekts mitunter lohnen dürfte.

    Hintergrund zu PHP 8
    PHP (Personal Home Page Tools) ist 25 Jahre alt. Das 1995 (etwa zeitgleich mit Java und JavaScript) von Rasmus Lerdorf begonnene Open-Source-Projekt war ursprünglich zum Erstellen von Websites gedacht, wobei der Browser den Code Zeile für Zeile auslas. Ab PHP 4 überführte ein Compiler den Programmcode in Bytecode, der im nächsten Schritt zu ausführbarem Code wurde. Seit Version 5 bietet PHP zunehmend Objektorientierung. Eine Hürde waren die zunächst fehlenden skalaren Typinformationen – da in PHP geschriebener Programmcode auch ohne Typinformation ausführbar ist, lässt sich nicht immer typspezifischer Bytecode erzeugen. Der tatsächliche Datentyp ist stets erst zur Laufzeit bekannt und kann sich bei erneutem Durchlauf wieder ändern.

    Gereiftes Open-Source-Projekt
    Heute gilt PHP als gereifte Programmiersprache – sowohl im Projekt als auch anwendungsseitig hat das ursprüngliche Hobbyprojekt seither Professionalisierung erfahren und streckenweise Unterstützung durch Unternehmen wie Facebook und Microsoft erhalten. Allerdings steht keine einzelne Firma oder Stiftung hinter dem Projekt, eine Reihe von großen und kleinen Förderern hat über kürzere oder längere Abschnitte die Entwicklung vorangetrieben. Besonders Facebook hatte sich zwischenzeitlich für PHP engagiert und den Sprachumfang durch Typinformationen erweitert, Microsoft finanzierte im Rahmen der PHP-7-Entwicklung zwei Entwicklerstellen. Davon abgesehen ist PHP ein Community-Projekt geblieben, und die Community trägt PHP auch nach dem Rückzug größerer Sponsoren weiter.

    Näheres zum Release und zu den Breaking Changes lässt sich dem PHP-Blog entnehmen. Die Release-Managerin Sara Golemon hatte heise Developer im Rahmen einer Konferenz zu PHP 8 einen Werkstatteinblick geboten – im Interview erzählt sie, welche Hürden es zu überwinden galt, und berichtet von den Neuerungen.

    Quelle: PHP 8 ist da und läutet die nächste Generation der Skriptsprache ein | heise online