Webentwicklung: PHP 7 und der Einfluss von Facebook
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(öffnet im neuen Fenster) , wie auch Schnittstellen zu nicht mehr gepflegter Software(öffnet im neuen Fenster) . Darüber hinaus ist die Syntax von Variablen vereinheitlicht(öffnet im neuen Fenster) 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(öffnet im neuen Fenster) 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(öffnet im neuen Fenster) ᐸ=ᐳ, der wegen seiner Form auch Spaceship genannt wird. Dazu kommt der Null Coalesce Operator(öffnet im neuen Fenster) ??.
In PHP 7 kann die Möglichkeit genutzt werden, dem Rückgabewert einer Funktion einen Typen(öffnet im neuen Fenster) zuzuordnen. Diskutiert wird zurzeit noch die genaue Funktionsweise bei der Verwendung der skalaren Typen(öffnet im neuen Fenster) Int, Float, String und Bool. Big-Ints(öffnet im neuen Fenster) 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(öffnet im neuen Fenster) stellt das Projekt in seinem Wiki bereit.
- Anzeige Hier geht es zu Hacking & Security: Das umfassende Handbuch bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.