Heim >Backend-Entwicklung >PHP-Tutorial >PHP vs node.js Smackdown: Antwortrecht
sitePoint veranstaltete kürzlich einen Peak -Showdown zwischen PHP und Node.js, und Craig Buckler stellt diese beiden Entwicklungstechnologien in eine der zehn Herausforderungen, um den ultimativen Gewinner zu bestimmen.
Wie Craig in dem Artikel betont, ist dieser Vergleich immer umstritten. Als interessantes Follow-up luden wir Bruno Škvorc (PHP-Editor für SitePoint) und James Hibbard (einer der JavaScript-Herausgeber von SitePoint) ein, zu jeder Runde zu kommentieren.
Folgendes ist ihre rundum-Runden-Bewertung ...
Die erste Runde der Herausforderung bestand darin, in jeder Sprache eine Webseite "Hello World" aufzubauen. Dies beinhaltet die Zeit, die für die Einrichtung der Serverumgebung benötigt wird.
PHP hat die Runde in Craigs Schätzungen gewonnen, teilweise, weil es "konzeptionell einfacher" und "weniger einschüchternd für neue Entwickler" ist.
Php gewinnt in "Anfang" nur, weil mehr Hosts es so einfach machen, loszulegen. Dies ist ein Adoptionsproblem, nichts anderes. Wenn weitere Hosts die Befehlszeile mit dem Knoten umgehen und direkt zur einfachen "Reload Application" in der Datei -Upload- und Bedienfeld -Bedienung gehen, sind sie gleich. Die tatsächliche Syntax, etwas auf dem Bildschirm anzuzeigen, ist jedoch in PHP viel einfacher - insbesondere für die Programmierung von Neulingen.
Ich habe keinen großen Unterschied zwischen den beiden bei der lokalen Entwicklung gesehen. Um PHP -Skripte in einem Browser auszuführen, müssen Sie einen Serverstapel installieren. Aber wie Craig sagt, ist PHP konzeptionell einfacher. Die Eintrittsbarriere für Knoten ist höher. Es gibt keine Einwände dagegen.
Die zweite Runde untersuchte die Schwierigkeit, Hilfe und Unterstützung in jeder Sprache zu erhalten. PHP gewann die Runde hauptsächlich wegen seiner langen Geschichte.
Bruno schweigt darüber
Ich stimme dem zu. Node.js ist eine neuere Technologie, daher gibt es momentan weniger Hilfe. Wenn der Knoten reift, wird dies jedoch weniger wichtig.
Die dritte Runde verglichen die einfache Verständnis und Verwendung der Syntax von PHP und JavaScript. Craig verleiht JavaScript diese Runde.
Ich bin damit stark nicht einverstanden. Während PHP einige Macken hat, wurden viele von ihnen in letzter Zeit korrigiert, und viele der schrulligen Dinge werden in der neuesten Version entfernt. Andererseits gibt es diese Situation und diese Situation in der JS -Welt.
Über Punkt 3 ( Ihr Gehirn muss keine Modi wechseln, da Sie Js sowohl auf dem Client als auch auf der Serverseite verwenden können), bin ich nicht einverstanden. Die Serverumgebung unterscheidet sich vollständig von der Client -Umgebung und erfordert den Wechsel des Gehirnmodus. Es gibt auch einige neue Syntaxen, die Sie in Ihrem Browser nicht verwenden können, und umgekehrt. Es ist also ein bisschen wie das Wechseln der Sprachen.
Punkt 4 ( JS verständnisvoll ist, dass Sie es mehr verwenden möchten ) ist auch ein Punkt, mit dem ich nicht einverstanden bin. Ich benutze JS und PHP seit Jahren, und je mehr ich JS benutze, desto weniger mag ich es - aber es ist nur eine persönliche Präferenz.
Ich mag JavaScript. Ich weiß, dass es seine Macken gibt, ich weiß, dass es einige Fallstricke hat, aber ECMAScript 2015 wird viele dieser Probleme korrigieren und einige aufregende neue Funktionen in die Sprache bringen. JavaScript ist sowohl leistungsfähig als auch flexibel und kann sich an viele verschiedene Programmierstile anpassen. Im Vergleich zu PHP schreibe ich gerne JavaScript. Node verdient den Sieg in dieser Runde.
In der vierten Runde wurden die für jede Technologie verfügbaren Tools berücksichtigt und der Knoten aufgrund von NPM knapp gewonnen.
Obwohl der Komponist ursprünglich von NPM inspiriert wurde, ist es jetzt viel besser als NPM, und wenn zwei Versionen derselben Bibliothek installiert werden müssen, wird es im Gegensatz zu NPM nicht Ihr System brechen. Im Gegensatz zu NPM kann Composer rekursive Abhängigkeiten installieren, was NPM einfach nicht kann - aber es ist absolut notwendig und sollte das erste sein, was für diejenigen, die anfangen, einen Paketmanager zu erstellen, in den Sinn kommen.
npm hat auch einige wirklich schlechte Fehlermeldungen, die ich "Core Developer -freundlich" nenne - nur diejenigen, die sie schreiben, können sie verstehen. Schließlich funktioniert NPM nicht gut mit Vagrant und verhindert, dass Sie effektiv richtig anfangen - ganz zu schweigen davon, dass sie nicht den Wunsch haben, dem Benutzer zu folgen. Dies ist ein Fehler, der es schon seit Jahren gibt, was es unter Windows im Wesentlichen unbrauchbar macht - es ist keineswegs eine triviale Benutzerbasis. PHP hat auch seine eigenen dummen Fehler, aber diese Fehler entfremden die Benutzer des gesamten Betriebssystems jahrelang nicht.
Zugegeben, Komponist ist nicht mit PHP gebündelt, aber ich denke nicht, dass es das tun sollte. Ein Paketmanager, der tatsächlich eine separate Anwendung ist, sollte nicht teilweise sein. Wenn jemand, der eines Tages wirklich einen guten Paketmanager für Knoten hat, wirklich ersetzt, dann wäre es eine bürokratische Hölle, ihn durch den aktuellen Paketmanager zu ersetzen, geschweige denn die Menschen zum Übergang zu bringen. Die Installation ist auch nur eine Zeile von Terminalbefehlen oder das Herunterladen eines Installateurs.
Die Aussage, dass der Komponist weniger Auswirkungen hat, ist völlig falsch. Seit der Entwicklung des Komponisten hat es alle neuen PHP -Entwickler beeinflusst, die sich den Rängen des PHP angeschlossen haben, und die meisten großen Entwickler, die sie zu ihrem aktuellen Workflow hinzufügen müssen. Nur weil es viele PHP -Benutzer gab, bevor der Komponist erschien, bedeutet dies nicht, dass es sich um eine geringere Wirkung handelt. Es hat einen großen Einfluss, seit es geschaffen wurde. Absolute Aussagen wie „weniger Auswirkungen auf die Gemeinschaft“ sollten nicht ohne sachliche Grundlage gemacht werden.
Ich kann nicht mit der Tatsache argumentieren, dass die meisten PHP -Entwickler den Knoten installieren, was wahr ist. Leider werden viele hervorragende Tools bevorzugt, sich mit Knoten zu entwickeln, aber ich möchte aufgrund von Projekten wie Bowerphp immer noch eine notenfreie Entwicklungsumgebung.
Ich bin sehr froh, dass der Knoten diese Runde gewonnen hat.
Ich mag NPM. Es ist einfach zu installieren, einfach zu bedienen und kann mit Tausenden von verfügbaren Paketen fast jeden Bedarf erfüllen. Ich mag auch, dass mit NPM Sie eine globale Installation und ein lokales Installationspaket auswählen können (im Gegensatz zu Sprachen wie Ruby, in denen Edelsteine normalerweise mit Ihrer Ruby -Version installiert werden). Das Werkzeug ist auch sehr gut. Werkzeuge wie Bower und Grunt nehmen einen regelmäßigen Platz in meinem Workflow ein und haben meine Produktivität oft erhöht.
Es ist auch erwähnenswert, dass NPM V3 in Beta ist. Dies löst viele der von Bruno aufgeworfenen Probleme, wie z.
Einführung in den gesamten Peak Showdown:
PHP -Entwickler möchten/müssen irgendwann node.js. Ansonsten ist es nicht der Fall.
Die fünfte Runde beinhaltet den Standort der Technologie und den Einsatz der Technologie sowie die Plattformen und Ökosysteme. Craig macht nicht klar, was er über die Runde gesagt hat, aber es sieht aus wie eine zerdrückende Niederlage für den Knoten.
Craig sagt, er werde die Webvorteile von PHP und Knoten (allgemeine Webentwicklungsherausforderungen) vergleichen und sagt dann, dass JS überall ist. Erstens vergleichen wir Node.js anstelle von JS selbst. Zweitens vergleichen wir die Sprache und Umgebungen, die sie ausführen können. Es ist nur dumm zu sagen, dass Affen besser sind als Fische, weil Fische keine Bäume besteigen können. Aber Affen und Fische können schwimmen, also vergleichen wir, wie viel sie schwimmen.
PHP gewinnt leicht in einer Webentwicklungsumgebung. Es gibt einige Tools in PHP für die Desktop -Entwicklung - ja, in der Tat werden Sie sie wahrscheinlich nicht verwenden. Sie können jedoch definitiv den Befehlszeilenaspekt von PHP verwenden.
In ähnlicher Weise stimme ich Craig zu. Viele der Funktionen, die Node.js so beliebt machen (Geschwindigkeit, Skalierbarkeit, Affinität zu JSON, Niedrigressourcenverbrauch), machen es auch für viele andere Arten von Anwendungen sehr geeignet, z. B. das Stromversorgungsgeräten. Ich meine, wer mag Roboter nicht?
Knoten brachte auch Projekte wie NW.JS (Anwendungslaufzeit basierend auf Chromium und Node.js) hervor, mit der Sie native Anwendungen in HTML und JavaScript schreiben können. Eine aufregende Zeit!
Die sechste Runde untersucht die Integration mit Datenbanken und Treibern, und PHP gewinnt hauptsächlich aufgrund ihrer langen Geschichte.
Integration ist eine Ziehung. PHP hat einen Altersvorteil in diesem Bereich und bietet mehr Optionen, aber es bedeutet auch, dass es unter schwer veralteten Integrationen wie der MySQL -Erweiterung leidet - wir haben es nur geschafft, es in PHP7 loszuwerden, aber es hat es nicht geschafft, es zu tun jahrelang Gebrauch.
Ich bin mir nicht sicher, ob ich dem zustimme. Der Wortlaut in der Runde scheint vage zu sein, und ich hoffe, es gibt ein Beispiel für "ältere, weniger beliebte Technologie". Dies kann auch eine großartige Gelegenheit sein, einen großen Vorteil des Knotens hervorzuheben - es nutzt JSON. JSON ist wahrscheinlich das wichtigste Datenaustauschformat im Web und auch eine gemeinsame Sprache für die Interaktion mit vielen der neuesten NOSQL -Datenbanken. JSON eignet sich perfekt für JavaScript -Programme, was bedeutet, dass bei der Verwendung von Knoten die Daten reibungslos zwischen Schichten ohne neu formatiert werden. Sie können eine Syntax von Ihrem Browser zu Ihrem Server zu Ihrer Datenbank verwenden. Runde 7: Hosting und Bereitstellung
Bruno:
James:
Boden 8: Leistung
Bruno:
Performance -Diskussion ist und wird immer ein Unentschieden sein. (Es sei denn, Sie verwenden Java - dann verliert Java immer!;))
Knoten wird als bevorzugte Laufzeit für leistungsschwache und ladenzige Anwendungen angepriesen und hat den Code-Stapel mehrerer Fortune 500-Unternehmen eingegeben. Es ist zu einem Synonym für "Fast" und "skalierbar" geworden Es gibt viele Geschichten online darüber, wie Knoten den Unternehmen erhebliche Leistungssteigerungen verleiht und die Produktivität der Entwickler verbessert. Ich bin froh, diesen runden Knoten zu sehen, aber ich verstehe, dass es ein kontroverser Punkt ist.
Die neunte Runde untersucht, wie viel Begeisterung Craig den Entwicklern derzeit auf PHP und Knoten gezeigt hat, und seiner Meinung nach gewinnt der Knoten leicht.
craig, du musst an den falschen Ort schauen. Die PHP -Community ist sehr enthusiastisch und sehr aktiv. Es gibt jedes Jahr mehr als 20 große Konferenzen und einige erstaunliche Themen werden besprochen. Mit der Entstehung von HHVM und PHP7 ist das Wasserschritt beendet.
Außerdem möchte ich sagen, dass die Entwickler von Node nach 6 Jahren Entwicklung immer noch nicht erfahren haben, wie die Versionsnummer funktioniert (V0.12.5 zum Zeitpunkt des Schreibens), was seltsam ist. Dieses unreife und verzweifelte "sicher handeln“ (Oh, Sie haben instabile Dinge verwendet, Ihre Schuld hat Ihr Unternehmen zum Absturz gebracht), gepaart mit dem kritischen, aber übersehenen alten Fehler und entfremdete Benutzer der gesamten Betriebssystemgruppe, die jeden ernsthaften Entwickler fernhält Aus dem Ökosystem der Programmiersprache.
Ich mag keinen Knoten. Meine Abneigung basiert auf negativen Erfahrungen und dreht sich hauptsächlich um NPM. Dies mag sich in der Zukunft ändern, aber vorerst, jedes Mal, wenn ich Knoten in irgendeiner Weise verwenden muss, werde ich voller Angst und Verzweiflung. Wir alle haben unsere eigenen Vorlieben, aber es ist wichtig, objektiv zu bleiben und die richtigen Werkzeuge für den Job zu wählen. Es ist jedoch auch wichtig zuzugeben, dass die Auswahl des richtigen Tools manchmal zuerst das falsche Tool auswählen muss, da Sie noch nicht wissen. Hören Sie also nicht Craig. Hör nicht auf Jim. Hör mir nicht zu. Probieren Sie es aus - sehen Sie, was funktioniert, finden Sie heraus, was sich gut anfühlt, und benutze es dann. Letztendlich ist die Umgebung, in der Sie sich effizient und großartig fühlen, die beste Umgebung, anstatt Ihnen eine kürzere Ladezeit in Millisekunden zu geben.
James:Runde 10: Future
Bruno:
Bruno musste sich beeilen und mehr PHP -Code schreiben und unglaubliche PHP -Artikel für SitePoint bearbeiten
James:James ist auch bestrebt, zu seinem geliebten JavaScript -Kanal zurückzukehren, aber er bietet diese Abschiedswörter an:
Die Auslosung ist ein faires Ergebnis für diese Runde. Der Knoten ist ein steigender Stern, aber es wird einige große Dinge dauern, um PHP zu ersetzen.Insgesamt
Insgesamt, wenn Ihr einziges Werkzeug ein Hammer ist, sieht jede Frage wie ein Nagel aus. Der Knoten ist nicht die perfekte Wahl für alle Szenarien, und es ist in der Tat sinnvoll, ihn in vielen Fällen nicht zu verwenden. Aber welcher Knoten gut ist, macht es wirklich gute Arbeit. Es liegt an Ihnen, eine informierte Wahl zu treffen und das beste Werkzeug für Ihren Job zu wählen.
Also, jetzt, wo Bruno und James ihre Meinungen zum Ausdruck gebracht haben, was haben Sie zu sagen?
FAQs (FAQs) über PHP und Node.jsWie vergleicht die Lernkurve von PHP mit Node.js?
node.js eignet sich in der Regel besser für Echtzeitanwendungen wie Chat-Anwendungen, Collaboration-Tools oder Multiplayer-Spiele. Dies liegt daran, dass es über eine ereignisorientierte nicht blockierende Architektur verfügt, mit der sie mehrere gleichzeitige Verbindungen verarbeiten und einen hohen Durchsatz haben, was für Echtzeitanwendungen von entscheidender Bedeutung ist.
Sowohl PHP als auch node.js können erweitert werden, um große Anwendungen zu unterstützen, aber sie skalieren auf unterschiedliche Weise. PHP ist vertikal skalierbar, was bedeutet, dass Sie seine Kapazität erhöhen können, indem Sie leistungsfähigere Hardware hinzufügen. Node.js hingegen skaliert horizontal, indem Sie dem Serverpool weitere Maschinen hinzufügen. Node.js verfügt außerdem über ein integriertes Modulcluster, mit dem Sie ein Multi-Core-System nutzen können, um untergeordnete Prozesse zu erstellen, die Server-Ports freigeben.
Sowohl PHP als auch Node.js haben eine riesige und aktive Gemeinschaft, die ihre Entwicklung beiträgt und unterstützt. PHP hat eine lange Geschichte und verfügt über eine große Anzahl von Ressourcen, Bibliotheken und Frameworks. Node.js, obwohl neu, wächst schnell und wird von großen Unternehmen wie Google und Microsoft unterstützt. Beide Gemeinschaften entwickeln und pflegen aktiv verschiedene Open -Source -Projekte.
Sowohl PHP als auch node.js haben leistungsstarke Sicherheitsmerkmale, aber die Sicherheit einer Anwendung hängt normalerweise mehr vom Wissen und der Praxis des Entwicklers ab als von der Sprache selbst. PHP gibt es länger und verfügt über eine größere Benutzerbasis, was bedeutet, dass es mehr Sicherheitsbedrohungen ausgesetzt war und daher mehr Sicherheitsfunktionen und Best Practices entwickelt hat. Node.js ist relativ neu, mit weniger bekannten Schwachstellen, aber auch weniger integrierten Sicherheitsmerkmalen.
Sowohl PHP als auch node.js können für SEO optimiert werden. PHP wird seit vielen Jahren verwendet, um dynamische Websites zu erstellen, die leicht von Suchmaschinen indiziert werden. Node.js hingegen kann verwendet werden, um schnelle, skalierbare Anwendungen zu erstellen, die die Benutzererfahrung und die Leistung der Website verbessern können, die beide wichtige Faktoren in der SEO sind.
PHP unterstützt eine Vielzahl von Datenbanken, einschließlich MySQL, PostgreSQL und SQLite. Es unterstützt auch NoSQL-Datenbanken wie MongoDB über Bibliotheken von Drittanbietern. Andererseits ist Node.js aufgrund seiner JSON-basierten Datenverarbeitung besonders für NoSQL-Datenbanken wie MongoDB geeignet. Es unterstützt auch relationale Datenbanken über Module von Drittanbietern.
PHP ist für das serverseitige Rendering ausgelegt und seit vielen Jahren für diesen Zweck verwendet. Andererseits kann Node.js auch das serverseitige Rendering durchführen, insbesondere wenn sie mit Frameworks wie Express.js verwendet werden. Node.js wird jedoch häufig zum Aufbau von APIs und Backend -Diensten verwendet, und das Frontend wird von separaten Technologien behandelt.
Entwicklungsgeschwindigkeit kann je nach Komplexität des Projekts und der Vertrautheit des Entwicklers mit der Sprache variieren. PHP kann mit seinen einfachen Syntax- und reichhaltigen integrierten Funktionen eine schnelle Entwicklung erzielen. Node.js ermöglicht auch eine schnelle Entwicklung, insbesondere in Echtzeitanwendungen oder Diensten mit einer großen Anzahl von E/A-Operationen, dank seiner ereignisorientierten Architektur und nicht blockierende I/A.
Das obige ist der detaillierte Inhalt vonPHP vs node.js Smackdown: Antwortrecht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!