Original-URL des Artikels: https://www.golem.de/news/webentwicklung-php7-und-der-einfluss-von-facebook-1502-112121.html    Veröffentlicht: 03.02.2015 15:16    Kurz-URL: https://glm.io/112121

Webentwicklung

PHP 7 und der Einfluss von Facebook

Das kommende PHP 7 wird viele bestehende Installationen und Erweiterungen kaputtmachen, die Sprache aber auch wesentlich beschleunigen. Das zeigt ein Ausblick auf der Fosdem. Großen Anteil daran hat Facebook - allerdings anders, als zu erwarten wäre.

Ob einige der neuen Funktionen in PHP 7 durch die Community von Facebook übernommen worden sind oder ob diese zufällig die gleichen Ideen umsetzten, weil die eben gut sind, ist laut der Entwicklerin Sara Golemon schwer zu beurteilen. Zwar spreche vieles gegen eine Koinzidenz, trägt die Facebook-Angestellte auf der Fosdem mit viel Ironie vor, sie wolle dies aber auch nicht gänzlich ausschließen.

Überzeugt ist sie jedoch davon, dass die starke Konkurrenz mit der HHVM und dem PHP-Dialekt Hack die Entwicklung der neuen Sprachgeneration zumindest deutlich anrege. Dies sei zudem ein freundliches Rennen gegeneinander, da zwei Laufzeitumgebungen miteinander konkurrierten.

Aufräumarbeiten bringen Herausforderungen

Doch statt sich nur um Neuerungen zu kümmern, hat sich die Community dazu entschlossen, die Programmiersprache einem "Frühjahrsputz" zu unterziehen, wie es Golemon nennt. So wurden einige Funktionen komplett entfernt, wie auch Schnittstellen zu nicht mehr gepflegter Software. Darüber hinaus ist die Syntax von Variablen vereinheitlicht worden, wodurch sich die Semantik bestimmter Ausdrücke ändert.

Dieser Bruch zur alten Generation ist von den Entwicklern gewollt, da sich dies aus ihrer Sicht mit dem Wechsel auf PHP 7 leicht umsetzen lässt. Die schlechte Nachricht daran sei aber, dass die meisten PHP-Erweiterungen wohl aufwendig angepasst werden müssten. Bei besonders komplexer Software sei eventuell sogar ein Neuschreiben einfacher, vermutet Golemon.

Unicode mit UTF-8 statt PHP6

Doch PHP 7 soll den Programmierern auch viele nützliche Neuerungen bringen. Dazu zählt etwa die ausreichende Unterstützung für Unicode. Dies sollte eigentlich mit PHP 6 tief in die Sprache eingebaut werden, wurde aber nie umgesetzt. Wohl weil dies ein rein akademischer Ansatz gewesen sei, was der Community nicht entsprochen habe, so Golemon.

Um Verwirrung zu vermeiden wird Version 6, die nie erschienen ist, einfach übersprungen. Dank Escape-Sequenzen im Code sollen dennoch Unicode-Zeichen genutzt werden können, zur Kodierung wird UTF-8 verwendet. Eine sprechende Syntax wie etwa SNOWMAN, in der die Namen der Unicode-Zeichen benutzt werden können, wird ebenfalls diskutiert. Eine Klasse zum Umgang mit den Zeichen kann auch verwendet werden.



Operatoren, Typen, Interna

Die Programmiersprache wird außerdem um Bestandteile erweitert, die bereits aus anderen Sprachen bekannt sind. Über einige der Vorschläge muss das Team aber noch abstimmen. Geplant ist etwa der Drei-Wege-Vergleichsoperator <=>, der wegen seiner Form auch Spaceship genannt wird. Dazu kommt der Null Coalesce Operator ??.

In PHP 7 kann die Möglichkeit genutzt werden, dem Rückgabewert einer Funktion einen Typen zuzuordnen. Diskutiert wird zurzeit noch die genaue Funktionsweise bei der Verwendung der skalaren Typen Int, Float, String und Bool. Big-Ints sollen ebenfalls unterstützt werden. Zudem ist die interne Datenstruktur für alle Variablen - der Zvals - überarbeitet worden. Diese verzichten nun auf eine Referenzzählung, und auch Arrays werden anders implementiert, was zu deutlich reduziertem Speicherbedarf führen soll.

Facebooks Hack geht noch weiter

Insbesondere das neue Typensystem ist wahrscheinlich eine Anleihe aus Facebooks Hack, weshalb Golemon davon ausgeht, dass diese Übernahmen weiter ausgebaut werden könnten. Immerhin bietet Hack eine deutlich größere Typenvielfalt und erlaubt zusätzlich zu den Neuerungen in PHP 7 auch Typendefinitionen, typisierte Konstanten, generische Typen in Klassen oder auch die Spezifizierung von Arrays eines bestimmten Typen.

In Hack lassen sich spezielle Array-Objekte wie Vector, Set und Map samt dazugehöriger Funktionen verwenden. Eine Lambda-Syntax wird ebenfalls unterstützt. Viele der Funktionen von Hack würden auch in der PHP-Community zur Umsetzung diskutiert. Über den Fortschritt dieser Diskussionen zeigt sich Golemon aber wenig erfreut, da diese teils sehr schleppend vorangingen, etwa jene zu den skalaren Typen.

Facebook kann zumindest für Hack seinen Vorteil nutzen, die Sprache ohne große Diskussionen weiterzuentwickeln. Da die HHVM aber weiterhin auch explizit Standard-PHP-Code ausführen können soll, ist das Unternehmen interessiert daran, dass sich seine eigenen Entwicklungen nicht zu sehr von PHP unterscheiden. Vermutlich deshalb ist auch erstmals im vergangenen Jahr eine Sprachspezifikation durch Facebook erstellt worden.

Doch auch wenn PHP alle Neuheiten aus Hack übernehmen sollte und die Sprachen sich wieder anglichen, bleibe immer noch ein deutlicher Raum für Verbesserungen, glaubt Golemon. Eine detaillierte Liste weiterer geplanter Änderungen stellt das Projekt in seinem Wiki bereit.  (sg)


Verwandte Artikel:
VLC-Player 2.2.0: Rotation, Addons-Verwaltung und digitale Kinofilme   
(27.02.2015, https://glm.io/112099 )
Softwaresicherheit: Vertrauen durch reproduzierbare Build-Prozesse   
(02.02.2015, https://glm.io/112092 )
HHVM: Facebook konzentriert sich künftig auf Hack statt PHP   
(19.09.2017, https://glm.io/130140 )
PHP7: PHP reduziert Array-Speicherbedarf deutlich   
(23.12.2014, https://glm.io/111336 )
PHPNG: PHP erst am Anfang der neuen Generation   
(28.05.2014, https://glm.io/106799 )

© 1997–2020 Golem.de, https://www.golem.de/