Die Ausgangssituation: Ihr Unternehmen startet ein Softwareprojekt, in dem eine webbasierte Applikation entwickelt werden soll. Sie sind im Team, das dieses Projekt steuert. Und nehmen wir weiter an, dass Sie keinen IT-Background haben …

Hier können Sie sich einen schnellen Überblick verschaffen über wichtige Technologien und Buzzwords rund um webbasierte Softwareapplikationen. Dieser Blogpost hat nicht den Anspruch, Ihnen einen Crash-Kurs zum Softwareentwickler zu geben (vergleiche dazu: Bootcamp); aber der Blogpost schafft eine gute Grundlage für die Kommunikation mit dem Team von Softwareentwicklern!

Das User-Interface (UI) bzw die Bedienoberfläche: Angular vs React vs Vue

Vereinfacht gesprochen gibt es für jede Software ein FrontEnd und ein BackEnd. Das FrontEnd entspricht der Benutzeroberfläche, über die ein Nutzer mit der Software interagiert (kurz: Der Bildschirm, den der Nutzer sieht). Zu Beginn des Internets waren Internetseiten vollkommen statisch. Mithilfe von HTML wurde die Struktur und der Inhalte einer Seite beschreiben, sogenannten CSS (Cascading Style Sheets) haben den Programmierer die Formatierung einer Internetseite erlaubt.

Heutige Seiten von Webapplikationen sind hochdynamisch. Hierfür wird meist die Skriptsprache Programmiersprache JavaScript verwendet: Etwa 95% der meist-frequentierten Webseiten weltweit nutzen JavaScript im FrontEnd.

Um die Entwicklung zu beschleunigen und zu vereinfachen, werden Bibliotheken oder Frameworks genutzt. Zu den populären Bibliotheken/Frameworks gehören hierbei Angular (ein OpenSource-Projekt von Google), React (eine Entwicklung von Facebook) und Vue.js (OpenSource-Projekt ohne Back-Up eines Big Tech Players).

Für Angular und React spricht etwa, dass hinter beiden große Unternehmen (Google und Facebook) stehen, jeweils große Entwickler-Communities und damit eine hohe Investitionssicherheit. Zwischenzeitlich gab es lizenzrechtlich Unsicherheiten bezüglich React: Tatsächlich hatte sich Facebook für einige Zeit vorbehalten, die Lizenz bei Patentstreitigkeiten zurückzunehmen; diese Policy wurde zwar abgemildert, aber Stand heute gilt noch immer, dass derjenige seine Lizenz verliert, der gegen Facebook einen Patentstreit anfängt. Dennoch gilt: React ist nach Anzahl Nutzer, Jobangeboten und ähnlichen Kriterien die populärste dieser Angebote für Entwickler.

Warum Angular? – Es bietet als Framework umfangreiche vorgefertigte Komponenten und erlaubt damit eine sehr schnelle Entwicklung. Gleichzeitig gilt: Dieses Programmiergerüst ist – metaphorisch gesprochen – ein wenig wie ein Korsett: Es bietet weniger Freiheiten, ist in manchen Punkten restriktiver. Kurz: Entwicklungsgeschwindigkeit gegen Flexibilität.

React demgegenüber ist ja tatsächlich nur eine Bibliothek, wobei gilt: Entwickler nutzen in der Regel ein Set von Bibliotheken, das in Summe ebenfalls einem Framework entspricht. Unterschied: Dieses Set an Bibliotheken müssen sich Entwickler selbst erarbeiten/zusammenstellen und auch die Kompatibilität untereinander (etwas nach Updates) sicherstellen. Ähnliches gilt für Vue.js

Es gibt einen sehr übersichtlichen Vergleich in nachfolgendem Video eines Trainingsinstituts (28 min, Englisch): Hier wird die grundlegende Philosophie der Bibliotheken/Frameworks bewertet, die Einfachkeit in der Nutzung und die Geschwindigkeit (Startup Performance vs Runtime Performance).

Server-seitige Programmierung: PHP vs JavaScript

Die Anfragen des Nutzers im FrontEnd werden in einer typischen Client-Server-Architektur im BackEnd verarbeitet: Dort werden die eingegebenen Daten in einer Datenbank gespeichert, Datenbankabfragen werden verarbeitet, angefragte Dokumente werden aufbereitet, etc. Hierfür ist eine server-seitige Programmierung erforderlich.

Die Skriptsprache PHP (abgeleitet aus den Programmiersprachen C und Perl) ist eng mit dem rasanten Aufstieg des Internets in den 1990ern und Nullerjahren verbunden. Die Sprache ist einfach zu lernen, das Hosting ist einfach und kostengünstig, es gibt eine große Community. Die Skriptsprache wird auch heute noch von zahlreichen bekannten und erfolgreichen Applikationen genutzt: Zum Beispiel vom weitverbreiteten Content-Management-System WordPress (auch dieser Blog läuft auf WordPress), den Webshop-Softwareanwendungen Shopware oder Magento. Keine Programmiersprache ohne Ökosystem an Bibliotheken und/oder Frameworks. Bei PHP sind dies populäre Frameworks wie Laravel, Symfony oder Zend.

Unter Entwicklern läuft allerdings seit längerem eine Diskussion darüber, wie lange PHP noch relevant sein wird. Anders formuliert: Ist PHP eine aussterbende Skriptsprache? – Zunächst einmal gilt: Noch immer werden zahlreiche Neu-Entwicklungen in PHP umgesetzt. Auf GitHub (Dienst zur Versionsverwaltung für Software-Entwicklungsprojekte) ist PHP die #4 nach Umfang von Programmiercode in den Software-Entwicklungsprojekten (nach JavaScript, Python, Java). Andererseits ist auf GitHub auch erkennbar, dass die Popularität von PHP seit Jahren abnimmt. Auch auf StackOverFlow (populäre Community von Softwareentwicklern) ist dieser Rückgang erkennbar (den Höhepunkt erreichte PHP rund um das Jahr 2014). Und last but not least zeigt auch die Webseite PYPL (Popularity of Programming Languages) an, dass die Popularität von PHP zurückgeht.

Einer der Nachteile von PHP ist eine vergleichsweise langsame Performanz. Das spielt für Webseiten mit niederfrequentem Traffic keine entscheidende Rolle – wohl aber für hochfrequente Anwendungen wie Netflix, PayPal, UBER und derlei mehr. Hier müssen oft Tausende, auch Hunderttausende von Nutzern gleichzeitig bedient werden. Dort wird darum eine andere Technologie eingesetzt, nämlich Node.js (das gibt es seit 2009, inzwischen läuft es auf fast 1 Mio. Servern). Gegenüber PHP weist Node.js eine hochskalierbare Architektur auf, die eingesetzte Skriptsprache ist JavaScript. LinkedIn gibt etwa an, dass die Mobile App zwei bis zehn Mal schneller mit Node.js läuft im Vergleich zur vorher genutzten Technologie.

Folgende Slideshow liefert einen guten Überblick zum Stärken-/Schwächen-Profil von Node.js versus PHP (3 min, Englisch):

Java vs JavaScript

Zunächst einmal gilt: Java und JavaScript sind unterschiedliche Programmiersprachen – auch wenn die Namensgebung anderes suggeriert. Zu den (technischen) Unterschieden beider Programmiersprachen (Hinweis: JavaScript ist – wenn man es genau nimmt – eine Skriptsprache) komme ich weiter unten, zunächst zum Einsatzbereich.

Wie bereits aus den vorangehenden Absätzen deutlich wird, wird JavaScript „traditionell“ dafür genutzt, Webseiten dynamisch zu machen (wie gesagt: ca. 95% der Top 10 Mio. Webseiten nutzen JavaScript im FrontEnd). Nun ist seit der Verbreitung von Node.js der Einsatz von JavaScript im BackEnd-Bereich hinzugekommen (vgl. vorangehenden Absatz). Damit hat sich JavaScript ganz klar in die Domäne von Java entwickelt, das ebenfalls vielfach genutzt wird bei der Server-seitigen Programmierung (etwa mit Java-basierten Servern wie Apache, JBoss oder WebSphere).

Es gibt zahlreiche Entwickler, die bei Webentwicklungen klar auf JavaScript setzen. Und zwar aus folgenden Gründen: Sowohl für das FrontEnd, als auch für das BackEnd braucht man nur EINE Programmiersprache. JavaScript ist eine sehr effiziente Sprache, da man hier im Vergleich zu Java für die gleiche Anweisung weniger Programmierzeilen benötigt (der Abstraktionslevel ist bei JavaScript höher). Und schließlich gilt: JavaScript ist einfacher und schneller zu lernen.

Es gilt grundsätzlich: Sowohl Java, als auch JavaScript sind äußerst populär, beide haben eine Berechtigung. Beide Programmiersprachen haben ein spezifisches Stärken-/Schwächen-Profil. In der Praxis lässt sich darum Folgendes beobachten: Java wird für die Entwicklung von Android-Anwendungen verwendet, für Mobile Anwendungen und für komplexe Unternehmensanwendungen. JavaScript findet sich häufig bei kleineren Webanwendungen, aber auch bei Webanwendungen mit hohen Anforderungen an Performanz bei der Interaktivität.

Einige populäre Frameworks für Java im Kontext von Web-Entwicklungen sind übrigens Folgende: Spring, Hibernate (v.a. Datenmanagement) und Struts (Präsentations- und Steuerungsschicht).

Nachfolgendes Video (8 min, Englisch) gibt einen guten Überblick über die wichtigsten (technischen) Unterschiede zwischen Java und JavaScript.

Zum Weiterlesen

Author

Der Autor ist Manager in der Softwareindustrie mit internationaler Expertise: Prokurist bei einem der großen Beratungshäuser - Verantwortung für den Aufbau eines IT Entwicklungszentrums am Offshore-Standort Bangalore - Director M&A bei einem Softwarehaus in Berlin.