Tech-Talk: PHP? What the Hack?!
PHP ist ein Urgestein der Web-Technologien und ist die Grundlage für einen Grossteil der Websites im Netz (was unter anderem auf die Beliebtheit von CMS wie WordPress, Joomle, Drupal, Moodle und co. zurückzuführen ist). Doch besitzt PHP unter professionellen Software-Entwicklern oft einen schlechten Ruf. Was viele nicht wissen, ist dass PHP sich stark weiterentwickelt hat: Diverse Altlasten sind entfernt, neue Sprach-Features hinzugefügt und die Performance um einiges verbessert worden.
Oliver Fabel programmiert schon sehr lange mit PHP und zeigte uns in seinem Tech-Talk wie moderne PHP Entwicklung aussieht, um möglichst viele Vorurteile gegenüber PHP aus der Welt zu räumen.
PHP ist ein rekursives Akronym und steht für PHP: Hypertext Preprocessor. Es ist eine Skriptsprache, die primär für Web-Applikations-Backends verwendet wird, aber auch für allgemeines Skripten verwendet werden kann. Ursprünglich 1995 veröffentlicht, können die Versionen 1.* und 2.* als Steinzeit von PHP beschrieben werden. Nur rudimentäre Funktionalität um dynamische Inhalte anzuzeigen waren vorhanden.
Mit den Versionen 3.*, 4.* und vor allem 5.* ist PHP zu einer brauchbaren Technologie für grosse und komplexe dynamische Web-Applikationen geworden und kann als PHPs Mittelalter bezeichnet werden. Etwa wurde mit Version 5 objektorientiertes Programmieren ermöglicht.
PHP 6 wurde nie veröffentlicht, da die geplante flächendeckende Unicode Unterstützung sich als zu komplex herausstellte.
Um Verwirrung zu vermeiden, wurde als nächster Meilenstein PHP 7 Ende 2015 veröffentlicht. Seit dieser Version wird von modernem PHP geredet, da beachtliche Performance-Verbesserungen erreicht werden können und viel Altlast aus der Sprache entfernt worden ist.
Die aktuell neuste 8.* Versionsreihe baut darauf auf, führt viele neue Sprachfeatures ein und verbessert die Performance erneut durch die Einführung eines Just-in-time Compilers (JIT). Mit Benchmarks sieht man, wie je nach Anwendungsfall moderne PHP Applikationen um mehr als einen Faktor 10 schneller sind als solche mit PHP Version < 7.0, und wie PHP im Vergleich mit anderen gängigen Sprachen aus der Web-Entwicklung mithalten kann (siehe Link unten).
Heutzutage kann mit PHP also wunderbar objektorientiert programmiert werden. Trotz der schwachen und dynamischen Typisierung können Parameter, Return-Werte und Felder mit Typen versehen werden, wobei sowohl union- als auch intersection-types unterstützt werden.
Mit Generatoren und Fibers wird asynchrone Programmierung ermöglicht und Annotationen erlauben es à la Java Klassen und Methoden Funktionalität hinzuzufügen (um etwa die Endpunkte einer REST-Schnittstelle zu beschreiben).
Abschliessend kann gesagt werden, dass Entwickler, die sich andere High-Level Programmiersprachen gewohnt sind, wohl keinen Mehrwert bei PHP finden werden. Doch PHP Entwickler erfreuen sich einer schnellen, objektorientierten Programmiersprache, deren viele neuen Features ihnen das Leben erleichtern. Und auch Anfänger, die in die Webentwicklung einsteigen wollen, finden mit PHP eine gute Alternative zu NodeJS und Python.
Das Repository mit den Slides, Codebeispielen und Benchmarks ist hier verfügbar: https://github.com/ofabel/php-tech-talk
Tech-Talk: Oliver Fabel (oliver.fabel@fhnw.ch) Assistent und MSc Student
Blog Beitrag: Paul Sonnenschein (paul.sonnenschein@fhnw.ch) Assistent und MSE Student
Kommentare
Keine Kommentare erfasst zu Tech-Talk: PHP? What the Hack?!