Die Debatte zwischen PHP und Node.js wird schon seit langem geführt. Ersteres wird für die dynamische Webentwicklung verwendet, während letzteres ein JavaScript-Toolkit ist, das zum Schreiben von Hochleistungs-Webservern verwendet wird. Peter Wayner vom InfoWorld Test Center hat kürzlich einen Artikel geschrieben, in dem er die Vorteile der beiden aufzeigt.
Das Folgende ist die Übersetzung:
Dies ist eine typische Hollywood-Handlung: ein Kampf zwischen zwei alten Freunden, die sich getrennt haben . Reibung beginnt oft dann, wenn sich eine Person für Bereiche interessiert, in denen die andere Person selbstverständlich ist. Die Programmiersprachenversion des Films besagt, dass die Einführung von Node.js die Handlung des Freundes in eine enge Übereinstimmung verwandelt. PHP und JavaScript, zwei Partner, die einst gemeinsam das Internet beherrschten, wetteifern nun um einen Anteil an den Herzen der Entwickler.
In der Vergangenheit war ihre Partnerschaft einfach. JavaScript kümmert sich um die kleinen Details im Browser und PHP kümmert sich um alle serverseitigen Aufgaben, die auf Port 80 und MySQL vorhanden sind. Diese glückliche Verbindung treibt weiterhin viele wichtige Teile des Internets an. Auf WordPress, Drupal und Facebook verlassen die Leute PHP kaum für eine Minute.
Aber dann fand ein kluger Junge heraus, dass er JavaScript auf dem Server ausführen konnte. Plötzlich wurde uns klar, dass es nicht nötig war, PHP zu verwenden, um den Server-Stack der nächsten Generation zu erstellen. Eine Sprache reicht aus, um Node.js und das Framework zu erstellen, das auf dem Client ausgeführt wird. Für einige ist „JavaScript ist überall“ zum Mantra geworden.
Natürlich ist das Ende noch nicht fertig. Im Vergleich zu den einfachen Programmierern, die die Reinheit von Node.js und die Allgegenwärtigkeit von JavaScript anpreisen, gibt es Programmierer, die mit der Tiefe der Codebasis und der Stabilität des Verständnisses von PHP zufrieden sind. Kann der seltsame alte Mann den serverseitigen Emporkömmling abwehren? Kann JavaScript seinen alten Freund stürzen und die Weltherrschaft erlangen? Nehmen wir noch eine Handvoll Popcorn aus der Mikrowelle, setzen uns hin und schauen es uns an.
Wo PHP gewinnt: Mixed-Content-Code
Sie tippen und die Gedanken werden zum Text auf Ihrer Website. Sie möchten dem Prozess eine Verzweigung hinzufügen, die auf einigen Parametern der URL basiert. Eine kleine Wenn-Dann-Anweisung sorgt dafür, dass es gut aussieht. Oder vielleicht möchten Sie Text oder Daten aus einer Datenbank hinzufügen. Mit PHP können Sie den PHP-Magic-Tab öffnen und in Sekundenschnelle mit dem Schreiben von Code beginnen. Keine Vorlagen erforderlich – alles ist eine Vorlage. Es ist keine zusätzliche Dokumentation oder sorgfältige Architektur erforderlich, da Ihnen die Leistungsfähigkeit der programmierbaren Logik zur Verfügung steht.
Wo Node gewinnt: Getrennter Inhalt
Das Mischen von Inhaltscode ist eine Krücke, die Ihnen letztendlich schaden wird. Natürlich macht das Mischen von HTML-Code die ersten zwei, drei Male Spaß. Aber bald wird Ihre Codebasis ein Chaos. Echte Programmierer fügen Struktur hinzu und trennen die dekorative Ebene von der logischen Ebene. Für neue Programmierer ist der Code leicht zu verstehen und zu warten. Die Frameworks, die auf Node.js laufen, werden von Programmierern erstellt, die wissen, dass das Leben besser ist, wenn Modelle, Ansichten und Controller getrennt sind.
Wo PHP gewinnt: Tiefe Codebasen
Das Web ist voller PHP-Code. Die beliebtesten Plattformen zum Erstellen von Websites (WordPress, Drupal und Joomla) sind alle in PHP geschrieben. Nicht nur diese Open-Source-Plattformen, auch die meisten ihrer Plug-Ins sind in PHP geschrieben. Überall im Internet gibt es PHP-Code, der darauf wartet, dass Sie ihn herunterladen, ändern und für Ihren eigenen Gebrauch verwenden.
Wo Node gewinnt: Neuer Code bedeutet modernere Funktionen
Sicher, es gibt Tausende von Open-Source-PHP-Dateien online, aber einige sind 8 Jahre alte WordPress-Plugins, die hoffen und beten, dass jemand sie herunterlädt . Wer möchte Stunden, Tage oder Wochen damit verbringen, mit Code herumzuspielen, der seit Jahren nicht mehr aktualisiert wurde? Node.js-Plugins sind nicht nur neu, sondern wurden mit umfassenden Kenntnissen der neuesten Architektur erstellt.
Wo PHP gewinnt: Einfachheit (bis zu einem gewissen Grad)
In PHP gibt es nicht viel: ein paar Variablen und Grundfunktionen für den Umgang mit Strings und Zahlen. Es macht nicht viel mehr, als Daten von Port 80 in die Datenbank und zurück zu verschieben. Das ist es, was getan werden sollte. Moderne Datenbanken sind erstaunliche Werkzeuge, die Ihnen viel Arbeit abnehmen. PHP hat das richtige Maß an Komplexität für Arbeiten, die nicht kompliziert sein sollten.
Wo Node gewinnt: Abschlüsse und mehr Komplexität
JavaScript kann viele kleine Macken haben, die manche Leute in den Wahnsinn treiben. Aber im Großen und Ganzen handelt es sich um eine moderne Sprache mit einer unterhaltsamen modernen Syntax und mehreren nützlichen Funktionen, wie zum Beispiel Abschlüssen. Sie können es einfach umkonfigurieren und erweitern, wodurch leistungsstarke Bibliotheken wie jQuery möglich werden. Sie können Funktionen genauso wie Objekte weitergeben. Warum sollten Sie sich einschränken?
Wo PHP gewinnt: keine Client-Anwendung erforderlich
Das ganze Gerede über die Verwendung derselben Sprache im Browser und auf dem Server ist gut, aber was ist, wenn Sie im Browser keine Sprache verwenden müssen? Was passiert, wenn Sie Daten in einem HTML-Formular senden? Browser-Popups, ohne die Kopfschmerzen und Störungen, die durch nicht aktiviertes JavaScript verursacht werden, das versucht, aus über zwanzig Webdienstaufrufen eine Seite im Browser zu erstellen. Reines HTML funktioniert häufiger als alles andere, während PHP für die Erstellung von HTML optimiert ist. Warum sollten Sie sich die Mühe machen, JavaScript in Ihrem Browser zu verwenden? Bauen Sie alle Vorgänge auf dem Server auf, um kleine Browser-Neuladevorgänge auf kleinen Telefonen zu vermeiden.
Wo Node gewinnt: Dünne Serviceaufrufe im Vergleich zu HTML-fetten PHP-Aufrufen
Während AJAX-verrückte HTML5-Webanwendungen viele bewegliche Teile haben, sind sie cool und sehr effektiv. Sobald sich der JavaScript-Code im Browser-Cache befindet, werden neue Daten nach unten verschoben. Dies erfordert nicht viel HTML-Markup und das wiederholte Herunterladen der gesamten Seite. Lediglich die Daten haben sich geändert. Wenn Sie bereit sind, Zeit in die Erstellung einer raffinierten browserseitigen Webanwendung zu investieren, wird sich das auszahlen. Node.js ist für das Senden von Daten optimiert, und zwar nur für Daten über den Webdienst. Wenn Ihre Anwendung komplex und datenreich ist, ist dies eine gute Grundlage für eine effiziente Bereitstellung.
Wo PHP gewinnt: SQL
PHP vs. MySQL und seine vielen Varianten, wie zum Beispiel MariaDB. Wenn MySQL nicht alles richtig macht, gibt es andere tolle SQL-Datenbanken von Oracle und Microsoft. Ihr Code kann mit sehr wenigen Änderungen in Ihre Abfrage konvertiert werden. Die weite Welt von SQL kennt keine Grenzen. Einige der stabilsten und ausgereiftesten Codeschnittstellen mit SQL-Datenbanken, sodass die gesamte Leistung auch problemlos in PHP-Projekte integriert werden kann. Es ist vielleicht nicht die perfekte, glückliche Familie, aber sie ist groß.
Wo Node.js gewinnt: JSON
Wenn Sie auf SQL zugreifen müssen, kann dies mit der Funktionsbibliothek von Node.js erledigt werden. Aber Node.js verfügt auch über JSON, eine gemeinsame Sprache für die Interaktion mit vielen der neuesten NoSQL-Datenbanken. Das heißt nicht, dass Sie keine JSON-Bibliothek für Ihren PHP-Stack erhalten können, aber es gibt einige Unstimmigkeiten bei der Verwendung von JavaScript, die mit der Einfachheit von JSON bewältigt werden können. Dies ist die Syntax vom Browser über den Webserver bis zur Datenbank. Doppelpunkte und Klammern funktionieren überall gleich, was Ihnen Zeit spart.
Wo PHP gewinnt: Codierungsgeschwindigkeit
Für die meisten Entwickler fühlt sich das Schreiben von PHP-Webanwendungen schneller an: kein Compiler, keine Bereitstellung, keine JAR-Dateien oder Präprozessoren – – Nur Ihr Lieblingseditor und ein Verzeichnis von PHP-Dateien. Ihr Tempo wird variieren, aber wenn es um die schnelle gemeinsame Fertigstellung von Projekten geht, ist PHP ein großartiges Werkzeug.
Wo Node.js gewinnt: rohe Geschwindigkeit
Wenn Sie JavaScript-Code schreiben und die geschweiften Klammern und Klammern zählen, ist es etwas schwierig, aber nach erfolgreichem Schreiben erhalten Sie Node.js-Code kann fliegen. Der Rückrufmechanismus ist sehr clever, da er Ihnen beim Ausführen von Threads helfen kann, Zeit zu sparen. Der Kern ist darauf ausgelegt, alles für Sie zu tun. Ist das nicht das, was jeder will?