LAMP versus MEAN: Ein Vergleich/ Unsere Erfahrung

LAMP steht für Linux (Betriebssystem), Apache (Server), MySQL (Datenbank Management System) und PHP (Programmiersprache). Dabei sind alle Komponenten Open Source und damit Lizens- und kostenfrei.

MEAN steht für MongoDB (Datenbank Management System), Express.js (Framework für Webanwendungen), Angular.js (ein JavaScript Framework für die Erstellung von sogenannten Single Page Applikationen) und Node.js. Auch diese Komponenten sind Open Source. Mit dem Unterschied, dass das MEAN Software Paket komplett auf JavaScript basiert.

Linux, Apache, MySQL, PHP

Das sogenannte LAMP Stack ist eines der ersten Technologie Pakete, welches eine hohe Popularität erreichte. Es ist sehr robust, flexibel, veränderbar, sicher, man kann damit einfach Anwendungen entwickeln und es hat eine sehr grosse Community and Entwicklern.

Es gibt auch einige Variationen dieses Technologie Pakets. Diese sind im Folgenden beschrieben:

  • WAMP (Windows, Apache, MySQL, PHP): Hierbei unterscheidet sich das Technologie-Paket lediglich darin, dass es anstatt auf Linux auf dem Windows Betriebssystem aufbaut.
  • WIMP (Windows, IIS, MSSQL Server, ASP.NET): Das WIMP Stack baut hauptsächlich auf Windows Technologien auf. Anstatt Apache kommt der Microsoft Internet Information Server (IIS) zum Einsatz. ASP.NET wird als Entwicklungs-Framework, anstatt PHP, genutzt.
  • LAPP (Linux, Apache, PostgreSQL, PHP): In dieser Variation wird das Datenbank Management System PostgreSQL genutzt. PostgreSQL ist für den Bau von Unternehmensanwendungen geeignet.
  • MAMP (Mac OS X, Apache, MySQL, PHP): Hierbei wird das Mac Betriebssystem von Apple für die Entwicklung genutzt. Läuft jedoch auch auf Windows.
  • XAMPP (Linux, Mac OS X, Windows, Apache, MySQL, PHP, Perl): Dieses Technologie Stack nutzt einen FTP Server und arbeitet Cross-Plattform. D.h. die darauf programmierten Systeme laufen auf Linux, Mac und Windows.

Die gängige Version ist jedoch LAMP. Da alle Technologien in diesem Paket für Linux erstellt wurden.

Vorteile des Linux, Apache, MySQL, PHP Stacks

Es gibt einige Vorteile, welche man mit diesem Technologie Paket hat. Hier einige davon:

  1. Weit genutzt und unterstützt: LAMP wird von sehr vielen Entwicklern genutzt, um Webanwendungen zu schreiben. Daher gibt es viele Support Foren und auch viele Informationen, wenn man auf Google danach sucht.
  2. Stabil: Das Technologie Paket gibt es nicht erst seit einem Jahr. Die Entwicklung läuft jetzt bereits seit mehreren Jahrzehnten. Dementsprechend wurden mit der Zeit immer mehr Ausbesserungen und Fehlerbehebungen vorgenommen.
  3. Neue Versionen und Frameworks für PHP: Mit PHP 7 und kostenfreien objekt-orientierten Frameworks, wie Laravel, werden viele Fehler der Programmiersprache behoben.
  4. Viele Entwickler kennen sich mit dem Stack aus: Linux, Apache, MySQL und PHP sind sehr vielen Entwicklern bekannt. Es lassen sich durchaus Experten in allen diesen Technologien finden.
  5. Der Einstieg fällt relativ leicht: Auch ein Anfänger kann mit der Technologie schnell zu den ersten Resultaten kommen.

Nachteile

Die Nachteile im weiteren:

  1. MySQL schlecht skalierbar: Ein Hauptargument gegen das Technologie-Stack ist MySQL. Es ist weniger schnell als MongoDB. Jedoch kann man, wenn man es so möchte, MySQL mit MongoDB in diesem Stack austauschen. Somit hätte man das Problem teilweise gelöst.
  2. Unterschiedliche Experten notwendig: Für die Entwicklung einer performanten Anwendung braucht es zumindest einen PHP Experten (Backend-Entwicklung), einen Frontend-Entwickler (JavaScript, HTML, CSS) und eventuell auch einen Datenbank Experten. Zumindest sind es alles unterschiedliche Technologien. Dies kann die Entwicklungskosten erhöhen.
  3. PHP ist keine gut durchdachte Programmiersprache: PHP wurde von Rasmus Lerdorf entwickelt, um damit einfache Webseiten zu schreiben. PHP steht für Personal Home Page (Englisch für “persönliche Website”). Mit der Zeit partizipierten immer mehr Programmierer an der Programmiersprache und heutzutage ist es eher eine grosse Anzahl an Bibliotheken mit unterschiedlichen Funktionen.

MongoDB, Express.JS, Angular.JS, Node.JS

MEAN ist ein relativ neues Technologie Paket, um Webanwendungen zu schreiben. Eines der Besonderheiten ist, dass alle Teile auf JavaScript basieren. Daher ist es insbesondere für JavaScript Experten und JavaScript Interessierte geeignet.

Angular.JS (auch “Angular” genannt) wurde zum Beispiel im Jahr 2009 von einem Entwickler namens Misko Hevery erstellt. Später wurde es von Google, unter der Leitung von Hevery, weitergeführt. Angular versucht viele Schwierigkeiten, welche es in der Webentwicklung gibt, zu beheben und schafft es zum grössten Teil auch. Die Technologie steckt noch in den Kinderschuhen (obwohl bereits weitläufig und erfolgreich eingesetzt). Mit der neuen Angular 2 Version wurden weitere Bugs behoben.

MongoDB ist, wie Angular, eher neu. Die Entwicklung dafür startete im Jahr 2007 unter dem Namen 10gen. Seit 2013 heisst es nun MongoDB. Ein Argument für MongoDB ist dessen Schnelligkeit bei der Datenlieferung und deren bessere Architektur gegenüber MySQL. Tatsächlich sehen das viele Entwickler so und steigen auf MongoDB um.

Vorteile

Hier einige Vorteile von MEAN:

  1. Weniger Experten benötigt: Alles läuft auf JavaScript. Daher könnte bereits ein Entwickler, mit starken JavaScript Kenntnissen, das Backend und das Frontend programmieren.
  2. Einfachere Skalierbarkeit: Die Technologien sind auf Skalierbarkeit und Schnelligkeit ausgerichtet. Besonders MongoDB und Angular helfen dabei.
  3. Neu: Das Technologie Stack ist “In” bei Entwicklern. Besonders Startups setzen auf diese Technologien. Auch weil diese lieber auf etwas “neues” setzen wollen.

Nachteile

  1. Wenige Experten vorhanden: Auf der einen Seite benötigt es Experten, um mit diesen neuen Technologien umzugehen. Jedoch gibt es nicht wirklich viele davon, da die Technologie, wie schon gesagt – neu – ist. Dies ist in der praktischen Umsetzung eine riesige Herausforderung. Was ist, wenn man nach langer Suche einen Top JavaScript/ MEAN Stack Experten findet, und dieser mitten im Projekt abspringt. Es ist unwahrscheinlich das man schnell einen Ersatz findet. Bei den Linux, Apache, MySQL, PHP Technologien wird das um ein vielfaches einfacher.
  2. Experten benötigt: Angular und MongoDB haben viele “Grenzen”. Damit is gemeint, dass die Technologie noch nicht so sehr stark ausgereift ist und man nicht alles, so wie gewohnt, umsetzen kann. Nur ein guter JavaScript Experte mit Erfahrung in den Technologien kann hier gut beraten und die Anwendung gut umsetzen.
  3. Mangelnde Stabilität und Ausgereiftheit: Das ganze Stack ist so neu, dass es noch viele Bugs und Verbesserungspunkte hat. Entwickler weisen zu Recht auf die Herausforderungen bei Angular und MongoDB hin. Beispielsweise zeigen Entwickler auf das React Framework als Alternative zu Angular und PostgreSQL als Alternative zu MongoDB. Bei der Leistungsstärke von Node.JS sind sich die meisten Experten jedoch einig.

Beide Technologie Stacks im direkten Vergleich

PHP wirkt für einige, besonders für Einsteiger, etwas angestaubt. Startups nutzen beispielsweise lieber das MEAN Technologie Paket, um tolle und neuartige Webapplikationen zu schreiben.

Das muss jedoch nicht heissen, dass LAMP dem neuen Technologie Paket unterlegen ist. Auch bei Linux, Apache, MySQL und PHP, kann man zum Beispiel auf Angular als Frontend Werkzeug setzen. Man kann MySQL mit MongoDB austauschen. Ein PHP Experte kann zudem die Performance der Anwendung hochhalten.

Die beiden Technologie Stacks sind derzeit die bekanntesten. Dies muss jedoch nicht bedeuten, das es die einzigen zwei Methoden sind, um Webanwendungen umzusetzen. Im Beitrag wurden bereits einige alternative Technologie-Zusammensetzungen aufgezeigt.

Hier noch ein paar Zusammensetzungen auf welche man zurückgreifen kann:

  • MEEN: Hier wird Ember.JS, ein alternatives Frontend Framework, anstatt Angular verwendet.
  • LEMP: Hier wird Apache mit Ngnix (“E”, weil die Aussprache auf Englisch “Enjinx” ist) ausgetauscht. Es ist leichtgewichtiger als Apache und wird dennoch als performanter angesehen.

Unsere Erfahrung

Unsere Erfahrung ist, dass es relativ schwer wird, gute Entwickler mit starken Kenntnissen in MongoDB, Express.JS, Angular und Node.JS zu finden. Es gibt zwar Dienstleister, welche sich darauf fokussiert haben. Frei verfügbare Entwickler gibt es auf dem Markt jedoch eher weniger.

Wir hatten nach einem Experten in AngularJS gesucht. Einen hatten wir zwar gefunden, dieser hat aber die Stelle nicht angetreten.

Im Bereich PHP und den dazugehörigen Technologien lassen sich dagegen jedoch relativ schnell Programmierer finden.

Für einen Dienstleister ist es definitiv wichtig, auch entsprechende Arbeitskräfte zu finden, welche die Anwendung umsetzen können.

Besonders Angular ist jedoch vielversprechend. Es lässt sich, unserer Erfahrung nach, gut im Zusammenhang mit ASP.NET (Microsoft’s .NET Framework für die Entwicklung von Webanwendungen) verwenden.

Aus Sicht des Auftraggebers/ Kunden: Wartbarkeit, Skalierbarkeit, Sicherheit, Schnelligkeit, Übersichtlichkeit/ grossartiges Design sind alles wichtige Aspekte, welche bei der Programmierung von Webanwendungen berücksichtigt werden müssen. Beim MEAN Stack sind zwar Skalierbarkeit, Schnelligkeit und grossartiges Design gegeben, bei der Wartbarkeit muss man jedoch Abstriche machen, sobald wichtige Entwickler aus dem Team, aus welchen Gründen auch immer, austreten. Denn es wird eine grosse Herausforderung einen Ersatz zu finden.

Aus Sicht des Kunden und auch der Anwender, aber auch des Dienstleisters, macht es daher Sinn auf robuste Technologien wie PHP zu setzen.

Zudem sollte man sich die besten Technologien herauspicken, zum Beispiel, PostgreSQL, Angular, React, Ember.JS, Express.JS, Nodes.JS, Nginx, MongoDB und diese nach belieben einsetzen.

Welche Erfahrungen habt Ihr gemacht? Welche Konstellationen könnt Ihr empfehlen?

Interessante Links:
LAMP auf Wikipedia
Mehr Informationen zum MEAN Stack


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