Im Gegensatz zu vielen anderen Programmiersprachen hat PHP weder einen einheitlichen Gedanken noch eine Reihe von Kernideen: Es begann als sehr pragmatischer Satz von Perl-Skripten, und Funktionen wurden nach Bedarf ohne großen formalen Entwurfsprozess hinzugefügt. Das Ergebnis ist eine Sprache, die sehr nützlich und vollständig ist, aber für sich genommen nicht sehr konsistent. Die immense Popularität der Sprache macht die Sache noch schlimmer; Sobald eine neue Funktion eingeführt wird, ist sie praktisch in Stein gemeißelt, da jeder damit beginnt. Ein paar Designfehler wurden auf diese Weise konsolidiert, und das PHP-Team hat es wirklich schwer, die Leute dazu zu bringen, sich von ihnen zu entfernen - register_globals
und dies magic_quotes
sind nur zwei Beispiele für Dinge, die zu dieser Zeit als gute Ideen erschienen, sich jedoch als weit verbreitet erwiesen haben.
Ein weiterer Faktor ist die Kultur, die um PHP herum gewachsen ist. Als seine Popularität zu wachsen begann, bestand der typische Anwendungsfall für PHP darin, kleine Ausschnitte der serverseitigen Funktionalität in ansonsten statische HTML-Dokumente einzufügen. Ein großer Teil der Zielgruppe waren Hobbyisten und Nicht-Programmierer, die PHP verwendeten, um ihren statischen Websites ein bisschen dynamisches Material hinzuzufügen. Die daraus resultierende Kultur ist sehr pragmatisch, ohne großes Interesse daran, einen „richtigen Weg“ zu finden. Während es möglich ist, recht elegantes PHP zu schreiben, interessiert sich ein großer Teil der Benutzergemeinschaft einfach nicht dafür, solange es funktioniert.
Im Gegensatz dazu hatten Sprachen wie Python, Ruby, Lisp, C #, Haskell und andere von Anfang an eine Philosophie, und die Community nimmt sie im Allgemeinen an und drängt die Sprache, ihr gerecht zu werden. (Wenn Sie interessiert sind, geben Sie import this
eine interaktive Python-Sitzung ein.) Eine Philosophie zu haben bedeutet, dass es eine Richtlinie für die Verwendung und Erweiterung der Sprache gibt, und sie führt auch zu einer homogeneren Gemeinschaft. Wenn Sie mit der Philosophie nicht einverstanden sind, gehen Sie eher weg und finden eine, die besser zu Ihnen passt ;; Es ist wahrscheinlicher, dass die resultierende Gemeinschaft einen Konsens über alle möglichen Dinge erzielt.
Das heißt, PHP hat Stärken und Schwächen sowie obskure Randfälle; Das Schreiben von idiomatischem PHP-Code bedeutet, die Stärken zu nutzen und die Schwächen und Unklarheiten zu vermeiden, genau wie bei jeder anderen Sprache.