Bei der Erörterung von Sprachen fallen immer diese beiden Stroustrup- Zitate ein:
Jeder, der zu Ihnen kommt und sagt, er habe eine perfekte Sprache, ist entweder naiv oder ein Verkäufer.
und
Es gibt nur zwei Arten von Sprachen: die, über die sich die Leute beschweren, und die, die niemand benutzt.
Nun zur Frage. Der größte Teil des Hasses richtet sich hauptsächlich gegen PHP4. PHP5 wurde erstmals im Juli 2004 veröffentlicht (Beta ein Jahr zuvor) und die letzte Version von PHP4 ist 4.4.9, die im August 2008 veröffentlicht wurde . Es gibt keinen gültigen Grund mehr, PHP4 zu verwenden, es sei denn, Sie pflegen eine ältere App. PHP4 wird von der PHP-Gruppe nicht mehr unterstützt, und wir alle hoffen, dass es bald verschwindet.
Die Lücke zwischen den beiden Versionen ist größer als normalerweise zwischen zwei Hauptversionen, da die Engine hinter dem Interpreter von Grund auf neu geschrieben wurde und ein neues Objektmodell enthielt. Die Veröffentlichung von PHP5 fiel ungefähr mit der Veröffentlichung von MySQL5 zusammen, einer umfassenden Überarbeitung von MySQL. PHP ist normalerweise mit MySQL gekoppelt, und die fünfte Version von beiden hat mehrere Probleme behoben und sie mit der Konkurrenz auf den neuesten Stand gebracht. MySQL unterliegt ebenfalls FUD-Kommentaren , aber es ist die Datenbank hinter Googles AdWords .
PHP 5.3 war eine Hauptversion in allem außer dem Namen. Viele Funktionen, die für PHP6 vorgesehen waren, fanden ihren Weg in 5.3 und für jeden 5.2-Entwickler da draußen würde ich dringend empfehlen, früher als später auf 5.3+ zu migrieren. Die aktuelle Version 5.4 enthält (unter anderem) einige großartige Funktionen:
Nun zu Ihren spezifischen Kommentaren:
PHP ist gut, generiert aber Spaghetti-Code
Das ist absolut nicht wahr. Keine Sprache generiert irgendeine Art von Code, es ist immer Sache des Entwicklers, Fehler zu machen. Spaghetti-Code ist in jeder Sprache möglich. Was jedoch stimmt, ist, dass PHP im Vergleich zu anderen gängigen Sprachen eine sehr niedrige Eintrittsbarriere aufweist. Daher ist es für unerfahrene Entwickler viel einfacher, schlechten (aber funktionierenden) Code zu schreiben. Aber das ist ein Nebeneffekt jeder leicht zu erlernenden Sprache.
Darüber hinaus erzwingt PHP keinen bestimmten Stil oder ein bestimmtes Paradigma, und es liegt immer an Ihnen, zu entscheiden, was zu tun ist. Ich habe das immer als eine gute Sache angesehen, während andere es als einen gültigen Kritikpunkt ansehen. Sie müssen selbst entscheiden.
PHP ist nett, aber Python ist Heiratsmaterial
In PHP fehlen Dinge, die Sie in anderen Sprachen wie C # oder JAVA erhalten
Ja tut es. Und in der Allzwecksprache X fehlen viele Dinge, die Sie in PHP bekommen. Zum Beispiel portabel über Betriebssysteme UND über http-Server hinweg und Unterstützung für jede denkbare Bibliothek von Drittanbietern, die in einer Webentwicklungsumgebung nützlich wäre. Sie müssen verstehen, dass PHP an nichts Wichtigem mangelt , wenn es so wäre, wäre es vor langer Zeit gestorben. Der Vergleich zwischen der Allzwecksprache X und anderen Mehrzwecksprachen mit PHP ist ein Irrtum, Äpfel und Orangen. Obwohl PHP einige Funktionen bietet, um die Idee zu unterstützen, dass es universell einsetzbar ist, ist es keine Web-Sprache.
Sie müssen bedenken, dass sich der Entwicklungspfad von PHP stark von der Allzwecksprache X unterscheidet : PHP ist gewachsen und hat sich weiterentwickelt, es wurde nicht entwickelt. Jedes Mal, wenn der Sprache ein Merkmal hinzugefügt wird, ist dies nicht unbedingt erforderlich, nicht in Übereinstimmung mit einem imaginären Ideal dessen, was eine Sprache sein sollte. Sprachen sind in erster Linie Werkzeuge, und PHP ist als solches perfekt.
Ich habe nichts gegen die Allzwecksprache X , ich bin alle dafür, das richtige Werkzeug für den Job auszuwählen. Ich habe immer gemischt und abgestimmt, und ich codiere auch in Java und Python, manchmal parallel zu PHP. Aber PHP ist das einzige, das ich jemals heiraten würde. :) :)
Wenn Sie überlegen, mit PHP zu beginnen, sollten Sie natürlich mit der neuesten stabilen Version beginnen, wie Sie es in jeder anderen Sprache tun würden.