https://a.storyblok.com/f/270183/1368x665/bab3dd656c/php-legacy_2024-new.png

PHP ist Legacy, im Jahr 2024

Zuletzt aktualisiert am November 19, 2024

Lesedauer: 9 Minuten

In unserem Job bei Vonage sind wir viel unterwegs. Ich spreche mit vielen Entwicklern aus allen Bereichen des Lebens, und ich kann mit Sicherheit sagen, dass eine der am häufigsten gestellten Fragen, die ich bekomme, lautet: Warum arbeiten Sie noch mit PHP? Abwandlungen dieser Frage können lauten: "Ist PHP nicht eigentlich schlecht?" Bei mehreren Gelegenheiten hatte die Person, mit der ich gesprochen habe, bereits 2012 mit PHP gearbeitet. Oder 2010. Ich habe es vergessen. Aus Gründen, die ich nicht verstehe, erleben wir in Online-Foren gerade wieder eine Flut von solchen Fragen, und so kommen immer mehr "PHP ist schrecklich"-Kommentare aus dem Hut gezaubert.

Was ist die Ursache für dieses Phänomen? Warum ist PHP "schlecht"?

Stämme

Ich betrachte die meisten Entwickler als Menschen, die als Nomaden beginnen und schließlich "ihren Stamm" finden. Das ist es ja, was Tech-Communities im Wesentlichen ausmacht. Eine der Anfangsschwierigkeiten (abgesehen davon, dass man seine erste Stelle bekommt) ist, akzeptiert zu werden oder zu entscheiden, welchen Stamm man sein Zuhause nennen möchte. Für einige ist es schwierig, akzeptiert zu werden, und hier kann eine gemeinsame Basis oder Humor für Absolventen oder Bootcamp-Teilnehmer genutzt werden.

In dieser Hinsicht ist der bekannte Witz "PHP ist schlecht". Aber es gibt keine Argumente mehr dafür - die nächstliegende Erklärung, die jemand wahrscheinlich geben wird, ist ein weitschweifiger Blogbeitrag, der vor Jahren geschrieben wurde über viele, viele Dinge, mit denen Sie nie in Berührung kommen werden oder die nur ein Ärgernis für den Autor sind. Es spielt keine Rolle dass Gegenbeiträge erschienen sind, wie dieser von Slack Engineering erschienen sind, in denen die Nuance erklärt wird, dass jede Anwendung in jeder Programmiersprache schlecht geschrieben werden kann. Ich vermute, einige werden schnell darauf hinweisen, dass Slack seine Plattform ursprünglich mit Hackentwickelt hat, einem von Facebook entwickelten Fork von PHP, oder dass viele der neuen Dienste, die sie seitdem hinzugefügt haben, in Go oder Node geschrieben wurden.

Die Voraussetzungen sind also nach wie vor gegeben: Es ist schlecht.

Der sich selbst aufrechterhaltende Mythos

PHP ist sogar so schlecht, dass ein bestimmtes Betriebssystem beschlossen hat, eine Warnung auszugeben, wenn man versucht, die mitgelieferte Version zu verwenden, mit dem Hinweis:

WARNUNG: PHP wird nicht empfohlen

Ungeachtet der Tatsache, dass die mitgelieferte Version bereits veraltet war, wurde die Formulierung damit verteidigt, dass man die Leute vor der veralteten Version von PHP warnen wollte. vor der veralteten Version von PHP zu warnen, mit der das Betriebssystem ausgeliefert wurde.

Es wurde festgestellt, dass dies auch bei Python 2.7 der Fall war, aber die Fehlermeldung lautete ausdrücklich "Python 2.7 wird nicht empfohlen", ohne den Warnhinweis. Das ist nicht das, was diese Fehlermeldung sagt.

Manche Leute mögen das lustig finden, aber ich finde es nicht lustig, wenn mein Betriebssystem mir vorschreibt, welche Programmiersprache ich verwenden soll. Das ist der Selbstläufer von PHP, dass es schlecht ist, und warum dieser Wink mit dem Zaunpfahl in Ordnung ist.

Warum reden wir dann immer noch über PHP, wenn es doch so schlecht sein soll?

Die Notwendigkeit ist die Mutter der Erfindung

Es gibt noch eine andere Programmiersprache, die genau demselben Evolutionsmuster gefolgt ist, nämlich JavaScript. Da JavaScript die de-facto Sprache war, die in einem Browser mit einer eingebauten Engine lief, musste sie hatte musste sie sich aus einfachen Anfängen entwickeln.

Ähnlich verhält es sich mit dem Aufkommen von Content-Management-Systemen, die in PHP geschrieben wurden, wie WordPress und Drupal: PHP musste sich weiterentwickeln. Die Entwicklung einer Sprache von Rasmus Lerdorfs praktischem C-Hack für seine eigenen Skripte zu einer vollwertigen, allgemeinen Programmiersprache für das Web geschieht nicht zufällig. Das Unternehmen Zend entwickelte die Zend-Engine und wurde von wichtigen Anbietern wie Oracle und IBM als Partner gewonnen.

Diese Dinge passieren weil die Menschen sie nutzenGenauso wie sich die Beziehungen zwischen JavaScript und ECMAScript und die Werkzeuge des Ökosystems ständig weiterentwickeln.

Diese Entwicklung hat genau deshalb stattgefunden weil PHP immer noch so weit verbreitet ist - ohne die weite Verbreitung hätten wir Dinge wie die Umstellung auf ein vollständig objektorientiertes Klassensystem in 5.0, Traits in 5.4, die Einführung von Generatoren in 5.6, eine überarbeitete Engine in PHP7, die in einigen Fällen eine Leistungssteigerung von 100% mit sich brachte, einen JIT-Compiler für 8.0 und native Enums in 8.1 nie gesehen. Der Lebenszyklus von Perl zum Beispiel hat sich nicht so schnell weiterentwickelt weil die Leute aufgehört haben, es zu benutzen. Was sind nun die tatsächlichen Ergebnisse dieser Entwicklung, die wir heute sehen?

Mythos Nr. 1: PHP lässt sich nicht skalieren.

Versuchen Sie, das Fathom Analytics zu sagen, die ihre Anwendung in Laravel umgeschrieben haben umgeschrieben haben und mit Millionen von Anfragen pro Sekunde umgehen.

Lassen Sie uns das klarstellen: Ein Microservice oder ein verteiltes System lässt sich nicht effektiv skalieren, wenn man es schlecht konzipiert..

Der Fall von Fathom zeigt, dass man dies - in ihrem Fall innerhalb des Laravel-Raums - sehr effektiv mit einem Arsenal von Werkzeugen tun kann, die von Laravel stammen. Wie Jack im obigen Blogbeitrag erwähnt, lautet die Kritik von Programmierern, die andere Sprachen verwenden, dass PHP nicht skalieren kann, weil die Benchmarks das sagen.

Aber wenn Sie eine Anwendung in großem Maßstab entwickeln, müssen Sie dann 1 Million Anfragen pro Minute verarbeiten können? Wahrscheinlich nicht. Aber es wäre sicherlich schön und schnell in Node, weil es asynchron ist, oder? Wahrscheinlich schon. Ist Ihnen das wichtig? Unwahrscheinlich in diesem Stadium.

Mythos Nr. 2: PHP ist langsam

Ein häufiger Kritikpunkt ist, dass man aufgrund des Single-Thread-Verfahrens von PHP neue Prozesse erzeugen muss, um gleichzeitige Arbeit oder horizontal skalierte Arbeitslasten zu schaffen. Die PHP-JIT wurde bereits in PHP8.0eingeführt, aber das war nur der Anfang von Änderungen, die die Geschwindigkeit zum Hauptthema der PHP-Entwicklung machten. Ich lernte OpenSwoole (damals Swoole) bereits im Jahr 2014und sah einen Workaround für das Single-Thread-Problem. Das Aufkommen von nativen Fibers in PHP8.1 bedeutete dann, dass Coroutines/asynchrones PHP erreicht werden konnten. A gutes Beispiel für ein Benchmarking finden Sie hieraber die Zusammenfassung dieser Entwicklung zur Geschwindigkeit bedeutet, dass es jetzt mehrere Optionen für PHP-Entwickler, blitzschnelle Applikationen zu schreiben.

Faser-Koroutinen

ReactPHP und amphp sind zwei Beispiele für die Verwendung von Fibres für nicht-blockierendes asynchrones PHP und sind nicht einmal neu. Sie funktionieren ähnlich wie die Ereignisschleife in Node. Wenn Sie herausfinden wollen, welche Geschwindigkeiten Sie damit erreichen können, hier ist ein Beispiel von einem Mitglied des ReactPHP-Kernteams, Cees-Jan Kiewiet. Spoiler: es ist schnell.

Neue Laufzeit

Also, wir zählen nicht mit Roadrunner und OpenSwoole da sie nicht neu sind. Aber erinnern Sie sich, als ich sagte, dass Not erfinderisch macht? Nun, in diesem Jahr gab es etwas ganz Erstaunliches: Ein neuer PHP-Anwendungsserver wurde eingeführt, FrankenPHP.

Warum wird es FrankenPHP genannt? Weil die Notwendigkeit der Weiterentwicklung von PHP dazu geführt hat, dass die neue Laufzeitumgebung in Go kodiert wurde, ähnlich wie Roadrunner, nur dass diese auf dem Caddy-Webserver. Ergibt das einen Sinn? Vielleicht sieht es seltsam aus, also nein. Ist es schnell? Ja. Interessiert es Sie, dass es in Go geschrieben ist? Hoffentlich nicht. Hier ist ein Beispiel für FrankenPHP, das von Laravel Octane verwendet wird. Spoiler: es ist schnell.

Woher kommt FrankenPHP?

Bildnachweis: FrankenPHP https://frankenphp.dev/

Der Schöpfer von FrankenPHP ist Kévin Dunglas. Interessant ist, dass Kévin ein Kernmitglied des Symfony-Frameworkist, man könnte also argumentieren, dass Symfony hat die Entwicklung einer neuen, schnelleren PHP-Laufzeitumgebung durch das Sponsoring seiner Arbeit effektiv gefördert.

Es gibt aber noch einen weiteren Grund, sich Kévins Arbeit anzusehen, denn er ist auch der Schöpfer von API-Plattform.

Moment mal, was ist eine API-Plattform?

Bildnachweis: API-Plattform https://api-platform.com/

Ah, richtig, gut, dass Sie fragen. Nun, PHP ist so veraltet, dass Sie jetzt ein maßgeschneidertes Backend-Framework verwenden können, das ausschließlich für die schnelle Entwicklung von REST/GraphQL-Web-APIs. Es kann entweder mit Symfony oder Laravel verwendet werden und enthält Funktionen wie die Auswahl Ihrer API-Antwortstandards, automatische Dokumentationsverarbeitung mit OpenAPI oder SwaggerUI, automatisierte Testtools und Performance-/Cache-Verarbeitung. Web-API vom Prototyping zur Produktion?

Spoiler: Es ist schnell.

Anmerkungen der Gemeinschaft: Größer und größer

Bildnachweis: Teilnehmer der DrupalCon Barcelona 2023

https://events.drupal.org/barcelona2024

Eine häufige Aussage, die mir jedes Jahr von Entwicklern gemacht wird, ist, dass die PHP-Nutzung (und damit die PHP-Entwicklung) jedes Jahr zurückgeht. Dies fällt jedes Jahr mit der Veröffentlichung der StackOverflow-Entwicklerumfrage. Ich denke, es ist wichtig zu wissen, dass die viel zitierte Zahl, dass 70 % (oder so ähnlich) des Webs aus PHP bestehen, auf WordPress zurückzuführen ist. Ja, es ist PHP, aber es ist der Erfolg von WordPress als Produkt, der diese Zahl so hoch werden lässt. Bei einer derart überhöhten Zahl ist es nur zwangsläufig, dass sie im Laufe der Zeit sinkt, da immer mehr CMS-Frameworks und sogar CMS-SaaS-Cloud-Produkte wie Contentful oder Strapi ihre Verwendung finden.

Ist die Nutzung von PHP also rückläufig? Zahlenmäßig ja, da die Nutzer von WordPress abwandern, aber die PHP-Gemeinschaften sind immer noch unglaublich stark. Die Nutzung von drei der wichtigsten Frameworks nimmt zu, was bedeutet, dass neue Projekte entwickelt werden. Die DrupalCon hat im Durchschnitt etwa 3000 Teilnehmer pro Konferenz, von denen jedes Jahr mehrere in der ganzen Welt stattfinden. SymfonyCon und Laracon werden ebenfalls weltweit mehrmals im Jahr abgehalten und haben im Durchschnitt zwischen 1000 und 3000 Teilnehmer. Für mich ist das kein Zeichen für eine aussterbende Sprache. Es zeigt eine wachsende Sprache.

Vielleicht werden die Leute langsam aufmerksam?

Man sagt, dass Nachahmung die höchste Form der Schmeichelei ist. Mit dieser Philosophie im Hinterkopf ist es erwähnenswert, dass der Ansatz von Laravel zur Full-Stack-Entwicklung (der selbst ursprünglich auf Rails basiert) vollwertige Frameworks hervorgebracht hat außerhalb des PHP-Bereichs. Treffen Sie AdonisJSein auf Laravel basierendes Node-Framework. Nicht genug? Hier, haben Sie Wasp, ebenfalls ein Node-Framework auf Basis von Laravel. Wie wäre es mit Goravel, einem Go-Framework, das auf... nun, ich denke, wir wissen, was kommt.

Laravels spezifischer Ansatz für das Entwicklererlebnis hat ihm eine treue Anhängerschaft von Entwicklern eingebracht. Sogar so sehr, dass der Tech-Influencer ThePrimeagen bei Aaron Francis' Video eine Augenbraue hochgezogen hat PHP ist nicht mehr scheiße und überprüfte es. Das Ergebnis war eine unerwartete Bestätigung. Eine Keynote von ihm auf der LaraconUS dieses Jahr krönte dies bis zu dem Moment, als Laravel bekannt gab, dass es 58 Millionen Dollar an Risikokapital erhalten hatte. Vielleicht haben Sie diesen Artikel mit dem Gedanken gelesen, dass PHP im Sterben liegt, aber bei dieser Art von Kommen und Gehen würde ich sagen, dass dies vielleicht nicht der Fall ist.

Das Gerede über Frameworks ist ja gut und schön, aber... wer entwickelt die PHP-Sprache?

Die PHP-Stiftung

Wenn Sie kein PHP-Entwickler sind, habe ich mit diesem Artikel hoffentlich Ihre Aufmerksamkeit geweckt. Zum Hintergrund: Jahrelang wurde PHP nur von zwei Personen gepflegt, Nikita Popov und Dmitry Stogovdurch das Sponsoring von JetBrains und Zend bzw. Zend. Ja, es gab eine anständige Menge an Unterstützung von Release Managern, die zu zahlreich sind, um sie zu erwähnen, aber das ist immer noch eine Menge Arbeit auf den Tellern von zwei Entwicklern für Funktionen. Im Jahr 2022, Die PHP-Stiftung gegründet, deren Vorstand derzeit aus PHP-Veteranen und Vertretern von Automattic, Zend, Private Packagist, JetBrains, Tideways, Perforce und Symfony besteht.

Die Stiftung bezahlt 10 Ingenieure - einige in Vollzeit, einige in Teilzeit. Es ist ziemlich selten, dass es diese Art von offener Verwaltung gibt, wo doch die gängigsten Konstellationen sind "der wohlwollende Diktator auf Lebenszeit" oder kommerziell unterstützte. Diese Reise kann ohne sie nicht fortgesetzt werden. Wenn Sie also sehen wollen, wie diese 30-jährige Reise weitergeht, dann schauen Sie doch mal unter https://thephp.foundation/sponsor/ um die Sprache bei ihrer nächsten Etappe zu unterstützen.

Schlussfolgerung

Ich weiß nicht, warum wir ein Wiederaufleben von "lolphp" in den Ecken des Internets sehen, aber ehrlich gesagt, bin ich nicht wirklich besorgt. Ich denke jedoch, dass es die Fähigkeiten von Entwicklern ein wenig einschränkt, wenn sie Zeilen über etwas nachplappern, das schlecht ist und wahrscheinlich von jemandem stammt, der die Sprache vor 15 Jahren geschrieben hat. PHP ist modern, sieht ganz anders aus als vor 15 Jahren und hat eine blühende Community und ein Tooling-System. Dinge wie PsalmPHP und PHPStan die statische Analyse mit Hilfe des Abstract Syntax Tree, sind absolut erstklassige Werkzeuge. Wenn einige der größten Tech-Influencer da draußen bereit sind, es auszuprobieren, warum dann nicht auch Sie? Sie können die Vonage-Kommunikation ausprobieren, indem Sie sich das Vonage PHP SDKabrufen, für das ich die Hauptverantwortung trage. Brauchen Sie Hilfe? Sie können sich unserer Slack-Community oder kontaktiere uns auf X. Sie brauchen Beratung? Sie können eine kurze Sitzung mit mir buchen.

Teilen Sie:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondeSenior PHP Entwickler Advocate

Als ausgebildeter Schauspieler mit einer Dissertation in Standup-Comedy bin ich über die Meetup-Szene zur PHP-Entwicklung gekommen. Man findet mich, wenn ich über Technik spreche oder schreibe, oder wenn ich seltsame Platten aus meiner Vinylsammlung spiele oder kaufe.