PHP ist keine schlechte Sprache (oder zumindest nicht so schlecht, wie manche vermuten). Ich hatte Lehrer, die nicht einmal wussten, dass PHP objektorientiert ist, bis ich es ihnen sagte. Ich hatte Kunden, die uns sofort misstrauten, wenn wir sagten, wir seien PHP-Entwickler und fragten uns, ob wir keine schicken Sprachen und Frameworks wie Django oder RoR oder "Enterprise and Solid" -Sprachen wie Java und ASP.NET verwenden.
Facebook basiert auf PHP. Es gibt viele solide Projekte wie Joomla und Drupal, die im Unternehmen und in Regierungen zum Einsatz kommen. Es gibt Frameworks und Bibliotheken mit einigen der besten Architekturen, die ich in allen Sprachen gesehen habe (Symfony 2, Doctrine). PHP hat die beste Dokumentation, die ich gesehen habe, und eine große Community von Fachleuten.
PHP verfügt über fortschrittliche OO-Funktionen wie Reflection und Interfaces, ganz zu schweigen davon, dass PHP nun die native und saubere horizontale Wiederverwendung durch Merkmale unterstützt .
Es gibt schlechte Programmierer und Script-Kiddies, die PHP einen schlechten Ruf einräumen, aber gleichzeitig die PHP-Community an die Macht bringen, und weil es so einfach ist, Dinge zu erledigen, kann man die Dinge oft auf die falsche Weise machen, aber warum die Schuld geben Sprache?.
Nun, um das auf eine tatsächlich beantwortbare Frage zu bringen: Was wäre ein gutes, solides, kurzes und süßes Argument, um nicht verpönt zu werden und Vorurteile auf einen Schlag zu unterdrücken und Ihre Ehre zu verteidigen, wenn Sie sagen, Sie seien ein PHP-Entwickler? .
(Gratis-Keks mit der Schlagsahne für diejenigen, die empirisch nachweisen können, dass sie jemanden - Kunden oder andere - sofort überzeugen)
PS: Wir verwenden Symfony und der Code ist schön und wartbar
PPS: Facebook ist in PHP geschrieben, über HipHop in C ++ kompiliert und auf Hadoop implementiert. Hier: http://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/1/
quelle
Antworten:
Die einzige Antwort, die ich habe, ist folgende: Alles ist zum Kotzen.
Sie können Tonnen von Argumenten finden, die gegen OOP sprechen (eine schnelle Suche wird sie aufdecken), im Gegensatz zu funktionaler oder prozeduraler Programmierung. Sie scheinen darauf hinzuweisen, dass die OO-Unterstützung von PHP dies verteidigt.
Google leer saugt und Sie werden Ergebnisse für alles finden. Python ist zum Kotzen . Ruby ist zum Kotzen . Rails ist scheiße . PHP ist zum Kotzen . Java ist zum Kotzen .
Sie wollen wissen, was wirklich scheiße ist? Programmierer. Programmierer saugen. Jeder gute Entwickler sollte in der Lage sein, eine erstaunliche Anwendung, ein Front-End und ein Back-End, unabhängig von der Sprache zu erstellen - auch wenn er nicht mit der Sprache vertraut ist! (Das heißt, ein guter Programmierer sollte in der Lage sein, mit jeder Sprache effektiv zu lernen und zu arbeiten.)
Beachten Sie auch, dass der Erfolg einer Anwendung nichts mit ihrem Code zu tun hat. Ich habe gehört, dass Facebook-Code schrecklich ist, aber von Gott ist es effektiv. Gleiches gilt wahrscheinlich für Wikimedia (Wikipedia basiert auf PHP und ist auch eine äußerst beliebte Website). Was wirklich zählt, sind die Ergebnisse!
PHP ist die Sprache, die ich persönlich am besten kenne. Ich werde es bis zum Tod verteidigen. Ich habe mit PHP-Frameworks, direktem PHP-Code und PHP, Python und Ruby (und sogar Java) für die Webentwicklung gearbeitet. Ich kann nicht sagen, dass einer besonders besser ist als der andere. Was mehr zählt, sind die Entwickler und die Algorithmen. Ich habe erstaunlich guten und völlig schrecklichen Code in vielen Sprachen gesehen (besonders PHP, da ich so viel Erfahrung habe).
Nun zu Ihrer Frage: Es kommt darauf an, mit wem Sie es zu tun haben
Geschäftsleute
Ihnen geht es vor allem um Ergebnisse und Wirtschaftlichkeit. Die Tatsache, dass Facebook, Wikipedia und Wordpress sehr erfolgreich PHP verwenden, sollte mehr als genug sein, um sie davon zu überzeugen, dass es eine effektive Sprache für die Erstellung erfolgreicher Anwendungen ist.
Programmierer
Lassen Sie Ihren Code für sich selbst sprechen. Wenn ein Entwickler sagt, dass PHP in irgendeiner Weise minderwertig ist, zeigen Sie ihm PHP-Code, den Sie für effektiv halten. Der Beweis für den Pudding liegt im Essen.
quelle
success of an application has nothing to do with its code
<- Richtig. Aber wenn Leute sagen, dass "PHP eine schlechte Sprache ist", meinen sie nicht, dass "in PHP geschriebene Anwendungen schlecht sind", sondern dass "in PHP geschriebene Anwendungen aufgrund von Code-Spaghetti oft keinen Spaß machen". Es gibt natürlich großartige Anwendungen, die in PHP geschrieben sind. Aber ich glaube nicht, dass diese Antwort das anspricht, was Programmierer meinen, wenn sie PHP als "schlecht" bezeichnen.PHP hat eine schmutzige Geschichte. Es ist jetzt viel besser, als es noch vor kurzem war, aber es gab eine Zeit, eine sehr lange Zeit, in der viele schlechte Praktiken und Muster gefördert wurden und schwer zu vermeiden waren. Es gibt eine ganze Generation von schrecklichem PHP-Code, der immer noch im Umlauf ist, und in dem Maße, wie neue Programmierer durch das Lesen von altem Code lernen, lernen sie schlechtes Benehmen. PHP hat jetzt vielleicht nicht den Ruf eines schwarzen Endes verdient, aber es hat es sich trotzdem verdient.
Um PHP zu verteidigen, ist es am besten, den aktuellen Stand der Technik sorgfältig von der Geschichte zu trennen, mit der jeder vertraut ist. Sie können sagen, dass PHP keine schreckliche Sprache ist, aber wenn Sie mit jemandem sprechen, der seit einigen Jahren in der Branche tätig ist, sagt Ihnen das Gedächtnis etwas anderes.
Zeigen Sie ihnen, wie das PHP-Team aus ihren Fehlern gelernt und die Sprache zum Besseren verändert hat. Vorbei sind die Tage der magischen Zitate und Registerglobalen. Vorbei ist das Global-Everything-Paradigma und der abgesicherte Modus sowie mysql_escape_string. Erklären Sie ihnen, dass echte PHP-Programmierer immer Namespaces und parametrisierte Abfragen verwenden, veraltete Funktionen vermeiden und ihren Bibliothekscode immer außerhalb des Dokumentstamms ablegen.
PHP hat sich geändert, und PHP-Programmierer haben sich geändert. Aus diesem Grund ist PHP die wunderbare Plattform, die es heute ist. Es ist auch die einzige Plattform, von der Sie wissen, dass Ihre Kunden sie vorinstalliert haben. Das ist riesig.
Als Randnotiz empfehle ich, vorhandene CMS-Engines und Frameworks nicht als großen Gewinn für PHP zu bezeichnen. Sie laufen Gefahr, dass sie auf Dinge wie die Websense-Sicherheitsstudie von vor 4 Tagen hinweisen, aus der hervorgeht, dass 94% der jüngsten Website-Infektionen gegen PHP-Websites gerichtet waren, auf denen Software wie Joomla und Wordpress ausgeführt wird. Das ist nicht die Art von Firma, mit der man gesehen werden möchte. Stattdessen weist darauf hin , dass der Code seinen Weg sicherer als alles anderen Sachen.
quelle
PHP ist das COBOL des Webs. Beide Sprachen haben keinen Respekt, dennoch bauen und warten viele Menschen Systeme, die in ihnen geschrieben sind, und sie sind in nahezu allen wichtigen Computersystemen für ihre Heimatwelt ( dh das Web bzw. das kommerzielle Geschäft) in großem Umfang vorhanden . Auf beide Sprachen wird von Praktikern anderer, populärerer Sprachen herabgesehen, die größtenteils auf alten und veralteten Gewohnheiten basieren, die von Programmierern praktiziert wurden, die seitdem besser gelernt und ihre Werkzeuge verbessert haben.
PHP sollte so viel Glück haben, dass es das Leben von COBOL lebt. COBOL gibt es schon länger als alles andere als FORTRAN, und es wird nicht so bald verschwinden. Es gibt viele COBOL-Programme im täglichen Gebrauch, die älter sind als die Leute, die sie warten. Es mag nicht "die neue Schärfe" sein, aber es gibt immer Geld, das man verdienen kann, wenn man daran und damit arbeitet.
quelle
Ich denke, es kann auch nützlich sein, die andere Seite der Medaille zu verstehen und die Defizite von PHP zu erkennen. Obwohl PHP von einer Vorlagensprache weit fortgeschritten ist, gibt es noch viele Dinge, die verbessert werden könnten. Es gibt einige Punkte, an denen PHP noch fehlt: Unicode, Funktionsmerkmale, Organisation der Standardbibliothek
array
usw.Was ich vorschlage ist, dass - um eine konstruktive Diskussion über die Stärken und Schwächen von PHP zu führen - es gut sein könnte, all dies anzuerkennen. "Ja, ich weiß, dass die PHP-Standardbibliothek nicht sehr gut organisiert ist. Wenn sie jedoch heute geschrieben würde, könnten Namespaces und objektorientierte APIs verwendet werden." "Ja, ich weiß, dass das Standard-Array durch das Mischen von Wörterbuch- und Array-Strukturen ein wenig Chaos verursacht. Aber wenn man bessere Sammlungen haben möchte, kann man die SPL verwenden."
Ihre Sichtweise wird stärker, wenn Sie zeigen, dass Sie wissen, dass die Argumente der anderen einen Grund haben.
quelle
Warum?
Jeder, der Ihnen das Gefühl gibt, Sie müssten sich verteidigen (ob Karriere, Ehepartner, Ausgabengewohnheiten usw.), verschwendet seine eigene Zeit. Wenn Sie sich die Zeit nehmen, sich zu verteidigen, belustigen Sie einfach die falsche Art von Leuten - jetzt verschwenden Sie Ihre eigene Zeit und auch ihre.
Schneiden Sie diese Leute aus Ihrem Leben - Sie sind ohne sie besser dran.
quelle
Es gibt keinen kurzen und süßen Einzeiler, mit dem Sie die Leute von der Würdigkeit von PHP und seinen Entwicklern überzeugen können, aber Sie haben ein sehr überzeugendes Argument geschrieben, bevor Sie die Frage gestellt haben.
quelle
Um das Problem "PHP ist eine schlechte Sprache" anzugehen, müssen Sie herausfinden, warum die betreffende Person dies für eine schlechte Sprache hält. Vielleicht hat er an einem in PHP geschriebenen schlechten Projekt gearbeitet. Vielleicht mag er es einfach nicht, ihren Variablen ein Präfix zu setzen
$
. Vielleicht haben sie selbst versucht, die Sprache zu benutzen, und unhaltbares Durcheinander geschrieben. Viele Programmierer, die aus anderen Programmiersprachen stammen, sehen PHP und sehen ein Durcheinander, weil das, was in PHP Sinn macht, in einer anderen Sprache oder auf anderen Plattformen keinen Sinn ergibt. Beispielsweise sind Arrays in PHP das "Klebeband des Universums" und werden verwendet, um so ziemlich alles zu erreichen, während dies in anderen Programmiersprachen absurd wäre.Ich würde hier eine Kombination der Antworten vorschlagen.
create_function
. Vorbei ist der Dschungel desinclude
manuellen Telefonierens .free
, und alles ist "OO-ish", aber die Laufzeit ist groß und OO kann einschränkend sein. C ++? Ermöglicht das Erstellen von Typen, die sich in der Sprache genau wie primitive Typen (z. B. int) verhalten, die jedoch sehr komplex sind. PHP? Erleichtert den Einstieg ohne große Programmierkenntnisse, hat jedoch sehr viel Müllcode im Internet veröffentlicht.Es gibt einen Ort für jede Sprache. Wählen Sie die Sprache, die dem jeweiligen Problem entspricht, und versuchen Sie nicht, eine bevorzugte Sprache an Orte zu bringen, an die sie nicht gehört.
quelle