PHP vs. Node.JS: ein Vergleich

Der Klassiker in der Umsetzung von Webapplikationen ist immer noch PHP. Sei es erfahrene Programmierer oder Einsteiger. Viele setzen auf diese Technologie.

Auf der anderen Seite gibt es das neue Wundermittel Node.JS. Im Beitrag ein paar Informationen zu beiden Technologien und wann was besser sein könnte.

Einführung

PHP, was zuerst für “Personal Home Page” stand und später dann für “Hypertext Preprocessor”, wird nun seit mehreren Jahrzehnten genutzt, um Webapplikationen aller Grösse umzusetzen.

Es galt als Einstieg in die professionelle Webentwicklung.

Sei es Webseiten, Portale oder Webanwendungen, PHP war zur Stelle.

Dadurch das es jedoch bereits vor vielen Jahren entwickelt wurde, wurden die modernen Anforderungen an solche Online Systeme nicht berücksichtigt. Wie auch, man konnte ja auch nicht wissen, dass in einigen Jahren fast alle Menschen auf der Erde im Internet unterwegs sein werden und eine sehr gute Performance erwarten werden.

Zu Zeiten der Entstehung von PHP haben auch langsam ladende Webseiten gereicht, welche von wenigen Hundert Nutzern angesteuert werden.

Heutzutage erwartet man jedoch Blitzschnelle Anwendungen und gleichzeitig kann es sein, dass diese von Tausenden Personen in der Minute genutzt werden.

Um diese Herausforderung zu lösen, erschuf Ryan Dahl Node.JS. Damit sollte auch eine schnelle Abfertigung von Webanfragen, auch ausserhalb vom Browser, auf dem Server möglich sein. Im Grunde genommen sollten dadurch mehrere Zehntausend Anfragen gleichzeitig möglich werden.

Wann sollte man den Hypertext Preprocessor nutzen?

Kurze Antwort: Man kann und sollte PHP für fast alles nutzen. Auch heutzutage.

Sei es moderne Content Management Systeme wie WordPress oder TYPO3, Shoplösungen wie Shopware oder Magento, Social Media Plattformen wie Facebook oder komplexe Webapplikationen. Überall wird diese Webtechnologie eingesetzt.

In der Realität sieht es auch so aus, dass die meisten Anforderungen mit diesem Ansatz umgesetzt werden können. Denn die meisten Systeme werden höchstens mehrere Hundert Anfragen (zum Beispiel pro Stunde) über das Internet erhalten. Das gilt wohl für 95 Prozent der Anwendungen im Internet.

Moderne Frameworks wie Laravel machen es zudem einfacher und schneller solche Programmierungen zu erstellen. Auch Symfony und Zend sollen nicht unerwähnt bleiben. Zwei weitere spannende Frameworks.

Hier ein paar weitere Vorteile:

1) Es gibt viele Entwickler

Junior Entwickler und Senior Architekten in PHP findet man sehr gut. Auch international. Vermehrt arbeiten Teams global zusammen. Somit kann man auch von Entwickler-Pools ausserhalb der Heimatregion profitieren.

2) Auf fast alle Fragen gibt es Antworten

Auch Antworten auf komplexeste Fragen und Anwendungsfälle kann man Online in Foren und anderen Plattformen finden. Das ist besonders wichtig für Entwickler, welche das Rad nicht neu erfinden wollen.

3) Tried and Tested

Die Technologie ist gefühlt mehrere Millionen mal getestet, geprüft und erfolgreich im Einsatz.

Es gibt geradezu unendlich viele Unternehmen, die Webplattformen basierend auf PHP aufgebaut haben. Sei es CRM (Customer Relationship Management) Systeme, Content Management Systeme, Shopsysteme, Onlineportale oder Softwarelösungen. All das wurde bereits umgesetzt und es sind darum herum kleine bis grosse Unternehmen entstanden.

Wann sollte man den JavaScript Ansatz wählen?

Wenn PHP so toll ist, wann sollte man dann Node.JS (hier auch mit N.JS abgekürtzt) nutzen?

Es gibt einige bestimmte Szenarien, wo Node seine Vorteile hat. Hier einige davon:

1) Hochskalierbare Anwendungen

Trello, Netflix, UBER, PayPal. Das sind einige Schwergewichte die Node.JS im Einsatz haben.

Bei allen ist eines auffallend. Überall müssen Tausende und Hundertausende Nutzer gleichzeitig bedient werden.

N.JS schafft es aufgrund seiner Architektur, diese grossen Zahlen an Nutzern zu bewältigen.

Laut Netflix hat man es durch den Einsatz von N.JS geschafft, die Ladezeiten der Anwendung um 70 Prozent zu verbessern.

Uber nutzt es weil “Es grosse Datenmengen schnell und zuverlässig verarbeiten kann”.

2) Auch das Frontend soll schnell sein

Laut den Entwicklern von LinkedIn, läuft die Mobile App auf der Client Side (das was der Nutzer sieht), zwei bis zehnmal schneller, als mit der vorher genutzten Technologie.

Zudem kann man auf “JavaScript Everywhere” setzen. Dabei nutzt man das Technologie Stack “MEAN”, welches für “MongoDB (Datenbank, JavaScript basiert), Express.JS, Angular.JS (Frontend), Node.JS (Server)” steht. Dadurch wird zum einen die Entwicklung einfacher und zum anderen kommunizieren die unterschiedlichen Bereiche (Frontend, Backend, etc.) schneller miteinander.

3) Startups

Startups probieren viele Dinge aus und es soll definitiv skalierbar sein. Hier eignet sich N.JS ideal.

Voraussetzungen für die Nutzung von N.JS

Besonders Einsteiger, aber auch Profis kommen schnell in’s Schwärmen, wenn es um neue Technologien geht. Besonders N.JS ist so ein Ansatz, welcher sehr positiv ankommt.

Dennoch es gibt einige Voraussetzungen für die Anwendung dieser Technologie.

1) Schnell ändernde Technologie

Anders als PHP, ist Node noch nicht “Tried and Tested”, man kennt noch nicht alle Vorteile und Nachteile.

Zudem ändert sich N.JS ständig. Dadurch das es erst vor ein paar Jahren auf den Markt gekommen ist, kommen auch immer wieder Änderungen an der Technologie.

Dem kann man nur standhalten wenn man selbst ein Entwickler-Team hat, welches ständig diese Änderungen mitmacht.

Zum Teil muss die komplette Anwendung neu geschrieben werden, falls die Änderungen so gross sind. Das geht natürlich in gut finanzierten Startups oder Grossunternehmen die innovativ arbeiten.

Bei konservativen Unternehmungen, zu denen die meisten gehören, ist das eher weniger angesagt. “Einmal programmiert, soll das Ganze erstmal für eine Weile so bleiben”, ist meistens die Denkweise. Hier ist dann PHP der richtige Ansatz.

2) Wenige Entwickler verfügbar

Es gibt nicht gerade viele, welche sich als Spezialisten in N.JS bezeichnen können. Die meisten haben erst ein oder zwei Jahre Erfahrung darin, wenn überhaupt. Verständlich, es gibt die Technologie ja noch nicht so lange.

Das führt zu unterschiedlichsten Herausforderungen: a) Man findet kaum Entwickler auf dem Markt b) Die Gehälter sind extremst hoch c) Die Programmier sind sich zudem auch nicht sicher wie langlebig Node.JS ist (wird es das Ganze in 10 Jahren noch geben?)

Fazit

In den meisten Fällen reicht eine Implementierung in PHP. Besonders wenn nur ein oder zwei Programmierer involviert sind.

Wenn man sehr schnell entwickelt, grössere Teams hat, gut finanziert ist, bereit ist zu experimentieren und rasend schnelle Anwendungen benötigt, dann ist Node der bessere Ansatz.

Man kann sicherlich auch in kleineren Teams N.JS verwenden. Dann sollte man jedoch die Punkte aus diesem Beitrag beachten. Man muss dem Entwickler/in dann genug Zeit einräumen, dass Ganze zu entwickeln und zum Teil muss sich dieser auch darin neu einarbeiten.

Was sind Ihre Erfahrungen? Wann ist was besser?

Interessante Beiträge:
mindtwo macht den Vergleich PHP und dem Herausforderer aus dem JavaScript Bereich
Eine Bachelorarbeit in der Node.JS und der Hypertext Preprocessor analysiert werden

Bilder: Canva


Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.

Schreibe einen Kommentar