Articles

Recent Posts

Lassen Sie es uns gleich vorwegnehmen: PHP ist eine seltsame und hässliche Sprache. Sie ist nicht außergewöhnlich schnell. Sie ist syntaktisch nicht schön. Sie ist nicht um eine klare Meinung über gute Softwareentwicklungspraktiken herum formuliert. Und trotzdem schreibe ich eine Menge Software in dieser Sprache. Die offensichtliche Frage ist: Warum? Warum sollte man heute PHP verwenden?

Es gibt viele gute Gründe dafür, die über persönliche Vorlieben hinausgehen. Hier ist der Platz, um genau das zu behandeln. Warum ist PHP meine bevorzugte Sprache für die Webentwicklung?

Was ist PHP?

„Was ist ein PHP?“ Oder, allgemeiner, „was ist PHP?“ Kurz gesagt, PHP ist eine Programmiersprache für das Web, die auf der Programmiersprache C aufbaut und eigenwillige HTML-ähnliche Tags (oder Siglen) verwendet, um ihren Code zu enthalten. Die Programmiersprache PHP wird meist serverseitig verwendet, was bedeutet, dass sie auf Ihrem Webserver läuft, der normalerweise HTML an Ihre Besucher ausgibt.

PHP stand ursprünglich für „Personal Home Page“. Da dies die Bedeutung und die Zweckmäßigkeit der Verwendung der Sprache für den allgemeinen Gebrauch ziemlich einschränkte, steht die Sprache jetzt für „PHP: Hypertext Preprocessor“. Das nennt man ein rekursives Akronym (ein Name, der den Namen enthält). Nerds lieben sie.

Was kann PHP?

Wofür wird PHP verwendet? Im Grunde kann man mit PHP alles machen, was man auf einem Webserver machen will. Einen Blog erstellen? Ja, genau. Eine vollwertige Software-as-a-Serivce-Anwendung erstellen? Auf jeden Fall. Ein kleines Skript schreiben, um ein paar Daten in wenigen Sekunden zu verarbeiten? PHP ist dafür hervorragend geeignet. Einen komplizierten Satz von Skripten schreiben, der zufällig zu einem erfolgreichen Softwareunternehmen wird? PHP wird auf diese Weise oft verwendet.

Wenn Sie mir nicht vertrauen, die PHP-Website listet die folgenden Verwendungszwecke auf:

  • Server-seitige Skripterstellung
  • Befehlszeilen-Skripterstellung
  • Schreiben von Desktop-Anwendungen

Ich bin mir nicht sicher, ob ich den letzten Aufzählungspunkt befürworten würde, aber es ist möglich. Aber die ersten beiden sind gängige und gute Gründe, PHP im Jahr 2019 zu verwenden.

Das führt zu einer wichtigen und unvermeidlichen Tatsache…

PHP ist ÜBERALL

Es gibt viele Gründe, PHP zu kennen und zu lieben, der wahrscheinlich stärkste und stichhaltigste davon ist dieser: Es wird verwendet und läuft ÜBERALL im Web. Ihr billiges, kleines Hosting-Konto für 3 Dollar pro Monat lässt Sie vielleicht eine Webanwendung in Python oder Ruby laufen, wenn Sie sorgfältig einkaufen. Aber es wird auf jeden Fall mit PHP laufen. Das bedeutet, dass Sie sich darauf verlassen können, wo immer Sie auch sind.

Symony is one of the reasons that people choose PHP

Und weil es überall läuft und einfach zu bedienen ist, ist eine Menge sehr populärer Software in PHP geschrieben. WordPress ist das Beispiel, das mir am bekanntesten ist, aber Tools wie Joomla, Drupal, Magento, ExpressionEngine, vBulletin (ja, das gibt es immer noch), MediaWiki und andere laufen alle mit PHP auf dem Server.

Und es gibt mehr PHP-Anwendungs-Frameworks, als man mit einem Stock greifen kann: Symfony, Zend, Laravel, Aura, CakePHP, Yii, und sogar das ehrwürdige CodeIgnitor. Sicherlich können Sie eine Liste von Web-Frameworks von einiger Länge für fast jede andere Sprache erstellen. Und für die am häufigsten verwendeten Websprachen wie Python, Ruby oder Node/JavaScript können Sie vielleicht sogar eine zahlenmäßig konkurrenzfähige Liste erstellen. Aber die schiere Menge an Websites, auf denen PHP läuft, ist immens.

WordPress rühmt sich damit, dass mehr als 30 % des Internets damit betrieben werden. Man muss dieser Tatsache nicht einmal trauen, um zu erkennen, dass ein großer Teil des Internets PHP verwenden muss, wenn diese Tatsache auch nur annähernd wahr ist.

PHP hat einige sehr gute Eigenschaften

Easy Dynamism is Baked into PHP

PHP logo

PHP kann HTML-Rendering und -Programmierung einfacher als fast jede andere Sprache. Es ist also ziemlich einfach, HTML in PHP umzuwandeln. Ändern Sie einfach Ihr file.html in file.php, fügen Sie ein wenig Dynamik in einige <?php und ?> Tags ein. Die meisten Webserver sind bereits so konfiguriert, dass sie den Rest für Sie erledigen. Es ist so einfach, dass fast jeder damit anfangen kann, ohne dass man viel mehr als diese Programmierkenntnisse braucht.

Wenn man erst einmal erkannt hat, dass das meiste schlechte PHP von Programmieranfängern geschrieben wird, kommt die meiste Angst und der Hass auf PHP, dem man in der Welt begegnet, von einem anderen wesentlichen Problem: PHP wurde nie großartig entworfen, mit einer visionären Idee, warum es die perfekte Sprache für Ihren Webserver ist. Stattdessen ist es das Ergebnis einer breiten Zusammenarbeit in einem offenen Prozess, der als Schmelztiegel dient, durch den jede gute Idee – und ein paar schlechte – gehen muss.

Objektorientierung mit (großartiger) Paketverwaltung ist jetzt die Norm in PHP

Composer PHP language
Composer ist ein guter Grund, PHP zu benutzen

Und schlechte Ideen können es durch diesen Schmelztiegel schaffen. Das bekannteste Beispiel ist, dass PHP 5.3 – das weithin als die erste moderne Version von PHP angesehen wird – die goto-Anweisung einführte, die im Allgemeinen entweder belächelt wird oder als einfache Fehlerquelle gilt.

Ähnlich schlechte Dinge in PHP, die sich aus dem Prozess ergeben haben, durch den die Sprache gewachsen ist: Objektorientierung wurde zuerst als ein fehlerhaftes und begrenztes Konzept implementiert, die Standardbibliothek ist voll von inkonsistenten Namen und Parameterreihenfolgen, und (in einem Beispiel, das vor kurzem ziemlich viel Aufmerksamkeit bekommen hat) wird das ::-Token vom Interpreter durch die für Englischsprachige undurchschaubaren aufgerufen: T_PAAMAYIM_NEKDOTAYIM.

Aber heute ist die OOP in PHP vollständig verwirklicht. Nur wenige Sprachen haben so viel Java-ähnliche OOP-Praxis wie PHP. Außerdem hat PHP im Gegensatz zu Java einen einzigen und sehr beliebten Paketmanager namens Composer. Er war sehr gut, und so ist die Leichtigkeit, mit der man andere gut geschriebene und gut gewartete Bibliotheken in PHP einbinden kann, nicht zu verachten.

PHP ist um einiges schneller geworden

Aber wie gesagt, PHP entwickelt sich auf interessante Weise weiter. Es entwickelt sich zu einer ziemlich voll ausgestatteten Java-ähnlichen (im Guten wie im Schlechten) objektorientierten Sprache. Und ähnlich wie Java gewinnt es an einfachen Abstraktionen für die funktionale Programmierung – wohl der aktuelle Trend. Es wächst auch ein ziemlich großartiger Satz von Tools – PHP liebt Composer, und das aus gutem Grund – und ein lobenswertes Bemühen, all diese großen Open-Source-Projekte in PHP ein wenig besser zusammenarbeiten zu lassen.

Oh, und wir sollten nicht vergessen, was derzeit in aller Munde ist: der Geschwindigkeitszuwachs, den PHP in der PHP 7-Reihe erzielt hat. Es wird allgemein angenommen, dass dies durch die HHVM von Facebook initiiert wurde. Für kurze Zeit bestand die Gefahr, dass die Geschwindigkeit der HHVM die PHP-Gemeinschaft spalten würde. Aber das war nicht der Fall. Stattdessen wurde PHP einfach so viel schneller, dass die Leute die Existenz der HHVM größtenteils vergessen haben.

PHP hat eine RIESIGE Community; es ist lernfreundlich

Wenn man sich für eine coole neue Technologie entscheidet, wird meiner Meinung nach oft zu wenig beachtet, wie es ist, mit der Sprache zurechtzukommen. Wie ist es, PHP zu lernen? PHP-Tutorials sind weit verbreitet und oft recht gut.

Eine Kehrseite der Popularität von PHP ist, dass man einige nicht so gute Schulungen von Leuten finden kann, die nicht genug darüber wissen, wie die Verwendung des Tools wirklich ist. Oder die zuletzt „Best Practices“ befolgten, die vor einem Jahrzehnt aktuell waren. Aber im Großen und Ganzen ist das so selten, dass ich nicht glaube, dass es Sie entmutigen sollte. Herauszufinden, dass eine Praxis, die man ein paar Monate lang benutzt hat, nicht gut ist, ist selten und kein großes Problem.

Gemeinsame Vergleiche mit PHP

Viele Leute, die neu in der Programmierung sind, suchen nach sehr allgemeinen Vergleichen von Sprachen. Also, hier kommen sie. Alle Sprachen, die ich hier aufzähle, haben die folgenden Eigenschaften mit PHP gemeinsam:

  • Sie sind Open-Source. Das bedeutet, dass Sie die zugrundeliegende Sprache kostenlos verwenden können, und dass Sie das zugrundeliegende Programm sehen und verstehen können, wenn Sie es wünschen.
  • Sie werden oft für die Webentwicklung verwendet. Das sind Sprachen, die häufig für die Webentwicklung verwendet werden. Einige sind auch außerhalb dieses Bereichs weit verbreitet, aber nicht alle.
  • Sie sind hochrangig, locker und dynamisch typisiert. Das bedeutet, dass eine Variable ihren Typ ändern kann und dass man bei der Definition einer Variablen nicht festlegen muss, welche Art von Dingen (Zahlen vs. Strings vs. Objekte etc.) sie speichern soll. Dies wird im Allgemeinen für die Webprogrammierung bevorzugt, aber nicht überall.
  • Ihre Gemeinschaften sind gut oder besser. Es gibt eine Menge interessanter Sprachen, die die oben genannten Qualitäten aufweisen, aber keine große Community haben, die sie praktiziert. Ich lasse sie hier beiseite.

Warum PHP verwenden? Warum nicht JavaScript?

Die vielleicht wichtigste Sprache, mit der man PHP vergleichen kann, ist JavaScript. Moderne Entwicklung erfordert, dass jedes Projekt zumindest ein wenig JavaScript für die clientseitige Entwicklung und Interaktivität verwendet. Mit Node ist es relativ einfach geworden, JS auch auf dem Server zu verwenden. Die Idee, dieselbe Sprache „isomorph“ auf dem Client und dem Server zu verwenden, ist sehr reizvoll.

Wie PHP ist auch JavaScript eine eklektische und manchmal hässliche Sprache mit vielen Warzen und „Tücken“. Aber JavaScript hat sich in den letzten zehn Jahren enorm weiterentwickelt, so dass es durchaus seine Berechtigung hat. Warum sollten Sie PHP JavaScript vorziehen? Sie verfügen über Fachwissen oder müssen Bibliotheken in PHP verwenden. Ansonsten halte ich JavaScript für die bessere Wahl.

PHP vs. Active Server Pages ((.Net) Core)

Active Server Pages begann als geschlossene Microsoft-Sprache für die Webprogrammierung. Sie war ziemlich direkt mit PHP vergleichbar, lief aber in Windows-Server-Umgebungen. Sie wurde durch ASP.net ersetzt. Dieses wurde nun durch ASP.NET Core ersetzt. Die beiden letztgenannten Sprachen sind jetzt Open-Source-Sprachen, so wie PHP es ist. Und ich persönlich habe noch nie einen Hauch von ASP geschrieben, egal in welcher Variante.

Ich würde ASP bevorzugen, wenn ich Microsoft-Server verwenden und lieben würde. Ansonsten, gib mir bitte PHP. Die Größe und der Umfang der Communities sind nicht wirklich vergleichbar.

Soll ich Ruby oder PHP benutzen?

Ruby, speziell Ruby on Rails, war vor einem Jahrzehnt sehr beliebt. Ruby ist immer noch eine sehr beliebte Sprache, die in meinen Augen viel eleganter ist als PHP. Allerdings ist die Community kleiner. Und ich habe das Gefühl, dass Ruby nicht mehr die „heiße Sprache“ ist (sie wurde in dieser Rolle von JavaScript verdrängt). Ruby ist wunderschön, und es gibt genug Leute, die es gut können, so dass ich es nicht aus diesem Grund meiden würde. Aber es wird schwieriger sein, Leute einzustellen, die sich bereits damit auskennen, als dies bei PHP der Fall ist. (Obwohl ich denke, dass die Fähigkeiten eines durchschnittlichen Ruby-Entwicklers wahrscheinlich höher sind als die von PHP.)

Python vs. PHP: Was ist besser?

Die letzte Sprache, die in einem Eins-zu-eins-Vergleich mit PHP Sinn macht, ist Python. Python wird nicht nur in der Webentwicklung verwendet (es ist auch sehr beliebt für Statistik und Datenanalyse). Es ist auch eine der stabilsten und am besten entwickelten Sprachen, die es gibt.

Python (wie Ruby und JavaScript) ist etwas schwieriger auf einem Webserver zum Laufen zu bringen als PHP. Aber es ist eine hübschere Sprache und wird vielseitiger eingesetzt als PHP. Es ist eine der Sprachen, bei denen ich mir gut überlegen würde, ob ich PHP den Vorzug gebe, wenn alle anderen Faktoren (Zugang zu externen Bibliotheken, Zugang zu Experten usw.) gleich sind.

PHP gegen Go? Scala? Java? usw.?

Ich habe oben erwähnt, dass es eine Menge Ähnlichkeiten mit allen früheren direkten Sprachvergleichen gibt, die ich angestellt habe. Aber wenn wir diese Einschränkungen weglassen, gibt es eine Menge anderer Sprachen, die wir vergleichen könnten. Um also kurz auf einige einzugehen:

  • Java ist sehr beliebt und sehr schnell. Es wird für die Entwicklung von Android-Anwendungen, Desktop-Anwendungen und Webanwendungen verwendet. Sie ist allerdings nicht dynamisch typisiert, was bessere Leistungsgarantien, aber eine schlechtere Webprogrammierung zur Folge hat.
  • Go ist eine neuere und wachsende Sprache, die von Google unterstützt wird. Sie ist auf Webserver ausgerichtet, aber auf einem etwas niedrigeren Niveau (eher wie C) als PHP. Sie ist schnell, aber die Community ist kleiner.
  • Scala ist eine beliebte JVM-Sprache (Java-kompatibel), die immer noch an Popularität zu gewinnen scheint. Sie ist eleganter gestaltet als PHP, aber ich kann nicht viel mehr darüber sagen.

Das ist alles, was ich an Kontext zu bieten habe. Aber es gibt noch mehr Möglichkeiten, die man in Betracht ziehen kann. Aber das ist das Ende der spezifischen Alternativen, die ich zu PHP in Betracht ziehen werde.

Bei der Wahl einer Programmiersprache geht es um den Kontext

Angesichts dieser Vergleiche, warum sollte man PHP verwenden? Ich habe einige der Dinge aufgezählt, die an PHP schlecht sind, und ich empfinde einige davon regelmäßig. Die Inkonsistenz der Suchfunktionen zwischen Nadel und Heuhaufen beißt mich mindestens einmal im Monat, wenn ich schnell etwas ohne Autovervollständigung erledigen muss.

Für ein echtes und komplettes Neuland-Projekt, bei dem kein Bedarf an Interoperabilität mit anderen Systemen besteht oder das in einer beliebigen Umgebung ausgeführt werden muss, und bei dem das Team kein Fachwissen besitzt, würde ich sehr gründlich nachdenken, bevor ich PHP empfehle. Python spricht mich in diesem Szenario wirklich an. Aber das sind eine Menge Vorbehalte. Es gibt gute Gründe, selbst ein neues Projekt auf der grünen Wiese in PHP zu schreiben.

Jede moderne Websprache kann Ihnen helfen, gute Websites und Anwendungen zu erstellen. Und jede von ihnen hat Funktionen, die nicht ideal sind. Wie bei jeder anderen Sprache müssen Sie auch bei PHP die Vorteile für Ihr Projekt genau kennen, um zu entscheiden, ob es für Sie sinnvoll ist oder nicht. Aber ich persönlich finde, dass es möglich ist, – wie Keith Adams es in einem großartigen Vortrag ausdrückte – „schockierend produktiv in PHP zu sein.“

Wenn Sie ein Team von Python-Programmierern haben, schreiben Sie Ihre Anwendung in Python. Wenn Sie einen Mitbegründer haben, der sich mit Java auskennt, schreiben Sie Ihr SaaS in diesem Format. Die personellen Erwägungen sollten bei Software immer schwerer wiegen als die sprachlichen.