Ich höre immer, dass PHP für mittlere und kleine Websites ist, während .NET und Java für Unternehmensanwendungen. Meine Frage ist über PHP. Warum ist PHP keine gute Option für Unternehmens-Webanwendungen? Liegt es daran, dass PHP langsamer wird, wenn die Webanwendung größer wird, da es sich um eine interpretierte Sprache handelt?
Ich weiß, dass sich die Unternehmenswelt aufgrund der Integration in ihre Produkte und aufgrund von Back-End-Diensten usw. für .NET oder J2EE entscheiden wird. Wenn wir jedoch nur PHP für die Erstellung von Websites und Webanwendungen haben, wie können wir es dann einsetzen, um eine gute Leistung zu erzielen große Websites?
Kurz gesagt, besteht ein Zusammenhang zwischen der Leistung von PHP und der Größe der Website? Welche Faktoren machen PHP für große Websites nicht geeignet?
Antworten:
Leistung ist wahrscheinlich nicht einer der Faktoren. Für eine dynamische Sprache ist PHP eigentlich ziemlich leistungsfähig. Je nach Aufgabe kann es andere Technologien schlagen oder auch nicht. Das Anwendungsmodell ist einfach zu unterschiedlich, um es direkt mit Java oder ASP.NET zu vergleichen. Selbst wenn es einen messbaren Geschwindigkeitsunterschied gibt, ist er nicht groß und wahrscheinlich linear, was bedeutet, dass er gelöst werden kann, indem mehr Hardware auf ihn geworfen wird. Auch die Programmiersprache selbst ist selten der Engpass - Algorithmen, Datenbankzugriff, Netzwerkbandbreite und E / A im Allgemeinen sind die üblichen Schuldigen, es sei denn, Sie schreiben etwas, das wirklich CPU-intensiv ist.
Gründe für die Verwendung von ASP.NET oder Java über PHP, die wahrscheinlicher sind:
Ein weiterer Grund für den wahrgenommenen Effekt ist, dass PHP kostenlos (wie in Bier) und allgegenwärtig ist - jedes billige Shared-Web-Hosting-Unternehmen hat PHP im Standardpaket, aber ein .NET- oder Java-Server wird Sie erheblich mehr kosten. Folglich verwendet eine große Menge kleiner Websites PHP, nicht weil es das beste Tool für den Job ist, sondern das einzige, das zur Hand ist.
Das heißt nicht, dass PHP für große Projekte ungeeignet ist - es passt einfach nicht gut zu der Art von 'unternehmerischer' Programmierung. Seine Stärken liegen an anderer Stelle, und wenn Sie sie nutzen können, können Sie genauso einfach umfangreiche Anwendungen erstellen wie mit jeder anderen Web-Technologie.
quelle
Sie verwechseln den Datenverkehr ("kleine und mittlere Website" bedeutet normalerweise eine Website mit geringem bis mittlerem Datenverkehr) mit dem Grad der Komplikation der Geschäftslogik (einfache Website vs. Unternehmenslösung). Im zweiten Fall ist die Leistung nicht der Schlüsselfaktor.
Zum Beispiel ist Facebook eine stark frequentierte Website, aber keine Unternehmens-App. Auf der anderen Seite gibt es eine Vielzahl von Intranets, die auf Java-Anwendungsservern basieren und nicht in der Lage sind, den Datenverkehr selbst mittelgroßer Websites zu verarbeiten.
Leistungsmäßig ist PHP nicht die beste Option, aber auch nicht schlecht. Besonders im Vergleich mit anderen dynamischen Sprachen. Aber auch hier ist die Rohleistung nicht der wichtigste Faktor. Bei der Erstellung von Websites mit hohem Datenaufkommen geht es mehr um die Optimierung der Skalierbarkeit auf Architekturebene.
Warum wird PHP von Unternehmen so verachtet? Es gibt nur wenige Gründe, zum einen wäre es der schreckliche Ruf der Sicherheit . Zweitens wird es als Sprache für Amateure wahrgenommen, die hässlichen, nicht verwaltbaren HTML-PHP-Spaghetti-Code erstellen. Diese Wahrnehmung bleibt bestehen, obwohl es ausgereifte MVC-Frameworks gibt. Ich glaube, der ursprüngliche Autor von PHP hat argumentiert, dass Sie kein Framework benötigen, was nicht hilft. Die Tatsache, dass sich diese ahnungslosen Amateure mit geringen Programmierkenntnissen selbst als "PHP-Programmierer" bezeichnen, hilft auch nicht weiter. Der dritte Grund ist, dass jeder erfahrene Programmierer zustimmt, dass PHP nur schlecht als Sprache ausgelegt ist. Sie können deutlich sehen, dass es von einem Webmaster entworfen wurde,
Und ja, im Unternehmen dreht sich alles um die Systemintegration, bei der auch PHP nicht glänzt. Mit genügend Aufwand können Sie C-Module erstellen. Es gibt eine PHP-Java-Brücke, deren Verwendung ziemlich mühsam ist. Darüber hinaus haben Sie nicht viel. Versuche, Boost :: PHP (Integration mit C ++) zu erstellen, sind fehlgeschlagen. PHP-Klone, die unter JVM ausgeführt werden, sind weit davon entfernt, zu 100% mit PHP kompatibel zu sein.
quelle
Keine Ahnung, warum Leute behaupten, PHP sei für kleine und mittlere Websites. Soweit ich weiß, stimmt das nicht. Ich kenne einige von PHP unterstützte Websites, die klein anfingen und dann zu den Top100-Websites in meinem Land wurden. Sie verwenden immer noch PHP und haben keine Pläne, etwas daran zu ändern.
Die Sache, die die Leute zu einer solchen Schlussfolgerung treiben könnte, ist, dass im Falle von Java (und ich denke auch mit .NET) das Scalling von Anwendungen ein Begriff ist, der in der Dokumentation und Literatur häufig vorkommt. Die meisten Anwendungsserver unterstützen eine Form von Clustering, die zusammen mit dem Anstieg der Popularität eine rasche Steigerung der Leistung ermöglicht. Im Falle von PHP müssen Sie den Cluster selbst aufbauen. Sie können es auf viele Arten tun, indem Sie verschiedene Komponenten verwenden, und Sie müssen ein oder zwei Kenntnisse über die Funktionsweise von PHP haben. Dies lässt die Leute wahrscheinlich denken, dass mit einem einzigen PHP-Server (und damit einer kleinen oder mittleren Website) eine Sackgasse für PHP ist.
quelle
Es gibt nicht nur Unternehmens-Webanwendungen. In der Unternehmenswelt haben Sie normalerweise ein vollständiges Unternehmenssystem, bei dem der Webpart im Vergleich zum gesamten System recht klein ist. Es gibt viele Systeme im Internet, die Stapelverarbeitung, Warteschlangen-Messaging, Unternehmensintegration, Gateways und vieles mehr ausführen. Event an der Spitze gibt es vielleicht nicht nur
Während PHP gut für das Web ist, ist es nicht so gut für die anderen Arten von verteilten Systemen. Und da Sie all diese Systeme in Java oder .NET ausführen, ist es einfach, den Webstack auf derselben Plattform und nicht in PHP zu erstellen.
quelle
Ich würde sagen, dass die Probleme mit PHP weniger auf die Leistung zurückzuführen sind als auf Sicherheitslücken in der Vergangenheit. Während es zweifellos möglich ist , eine Website mit einer bestimmten Größe oder Komplexität in PHP zu schreiben und dennoch die Sicherheit aufrechtzuerhalten, wird die Aufrechterhaltung der Sicherheit mit zunehmender Komplexität schwieriger.
Java hingegen wurde vom ersten Tag an mit zumindest einigen Sicherheitsaspekten entwickelt. Obwohl diese nicht vollständig zur aktuellen Bereitstellung passen (ursprünglich galt dies hauptsächlich für Applets, nicht für Servelets), bedeutet die Betonung, dass ihre Funktionen besser für die Erstellung von sicherem Code geeignet sind. Und natürlich ist es auch nicht stehen geblieben - da Applets derzeit größtenteils ein totes Thema sind, wurde Java neu definiert, um die serverseitige Rolle zu betonen, die es derzeit (größtenteils) einnimmt.
Da .NET zumindest versucht, fast direkt mit Java zu konkurrieren, bietet es in dieser Hinsicht fast die gleichen Funktionen und Möglichkeiten. Sie können darüber streiten (und die Befürworter beider Camps), ob Sun oder Microsoft diesbezüglich einen besseren Job machen, aber die einfache Tatsache, dass beide Teams wirklich versuchen , daran zu arbeiten, verschafft ihnen einen ziemlich gravierenden Vorteil gegenüber PHP Respekt.
quelle
1) Leistung: Mehrere Antworten hier werden in diesem Punkt irregeführt.
Mit dem Phalanger-Projekt (das ich in der Vergangenheit erfolgreich verwendet habe) können Sie C # -Code in PHP verwenden und umgekehrt oder vollständig von einer in die andere Sprache wechseln. Sie werden wahrscheinlich einige Änderungen vornehmen müssen, aber während sie weiter daran arbeiten, wird es immer besser.
Mein Punkt ist, sie fanden heraus, dass es einen durchschnittlichen Faktor von 2,5 Geschwindigkeit zugunsten von C # gibt (oder .NET im Allgemeinen würde VB das gleiche tun, es ist MSIL am Ende).
Schauen Sie sich ihre Tests mit Wordpress an, es hat viele Entwickler angezogen.
Jetzt haben wir ihn noch nicht gesehen, aber es gibt immer jemanden, der Ihnen sagt, dass FaceBook in PHP geschrieben ist. Falsch. Es dauerte ursprünglich, bis sie ihren Fehler erkannten und HipHop schrieben, um ihn in C ++ umzuwandeln.
EDIT: Anscheinend dass letzte Block ist unklar, also was ich gemeint ist Facebook IS in PHP geschrieben, aber HipHop macht es RUN wie C ++, allgemeine Geschwindigkeit zu verbessern, WEIL PHP langsam ist.
2) Sicherheit: Wie bereits erwähnt, hat PHP eine lange Geschichte von Sicherheitsproblemen.
3) Entwicklungszeit: Das Erstellen einer Website in PHP ist in der Regel einfacher, insbesondere mit den verfügbaren Frameworks und allen "Site Buildern". Eine gute, zuverlässige und sichere PHP-Website zu erstellen, ist eine andere Geschichte.
quelle