Du ziehst den Hammer [aus dem PHP-Handwerkskasten] heraus, aber voller Bestürzung stellst du fest, dass bei diesem Exemplar beide Enden spitz zulaufen. Trotzdem irgendwie brauchbar, denkst du. Man kann die Nägel ja auch in die Wand schlagen, indem man das Ding seitlich hält.

Aus: https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

Architekturprinzip “Das macht man halt so!”

Als ich “zwangsweise” eine Zeit lang von Java und Scala auf PHP umsatteln musste, verstand ich die Welt nicht mehr. Selten habe ich mir beim Lesen der Dokumentation von Befehlen so oft den Kopf gekratzt. Warum gibt diese Funktion false oder 1 oder einen String zurück? Wer denkt sich so etwas aus? Warum gibt es mehrere Befehle, die alle von der Struktur her anders aufgebaut sind, aber (fast) das Gleiche tun?

Die Unstimmigkeiten und Inkonsistenzen im Kleinen finden sich dann auch im Großen wieder: Warum sind einzelne Mikro-Architektur-Elemente gefühlt “von hinten durch die Brust ins Auge” aufbaut?

Dann, erleichtert, entdecke ich etwas Vertrautes aus anderen Sprachen, z.B. Dependency Injection, um dann gleich doch wieder über die Art der Umsetzung zu stolpern.

Sooo schlecht kann PHP nicht sein…

“Wenn PHP so schlimm wäre wie du sagst, wie könnten dann bitteschön so großartige Produkte wie Drupal oder WordPress dabei herauskommen?”

Nun, vielleicht kommt bei diesen Produkten zum Tragen, dass die Nutzer- und Entwicklerbasis genügend groß ist. Das ist sicher nicht zuletzt ein Verdienst von PHP. Und mit den vielen Maintainern schleifen sich dann auch die Kuriositäten mit der Zeit soweit ab, bis ein Produkt dabei herauskommt, das in großen Teilen überzeugt. Freie Software ist also der hauptsächliche Grund für die Güte der Webseiten, oder? Ja, freie Software ist ein großartiges Konzept.

Wobei ich gestehen muss, bei WordPress immer noch nicht verstanden zu haben, warum sich manchmal die URL-Struktur ändert und plötzlich ein anderer Editor im Fenster ist. Und bei Drupal liefert sich die diametral entgegengesetzte Architektur von Blöcken und Panels hin und wieder ein Scharmützel…

Jedenfalls bin ich Eevee dankbar, dass er so treffend zusammengefasst hat, was mir bis dato nebulös die Stimmung verhagelt hat.

Eevee, thanks a lot for the summary!