JavaScript! Überall JavaScript!
In den letzten Jahren habe ich mich nahezu ausschließlich in der SAP-Welt bewegt. ABAP ist die Programmiersprache, mit der ich tagein, tagaus arbeite. An meine vorigen Programmiersprachen - Basic, Cobol, Fortran, Pascal, Modula-2, Oberon, C, C++, Java und C# - kann ich mich nur noch dunkel erinnern.
Mit der Entwicklung von Webanwendungen habe ich mich immer nur sporadisch befasst. Anfangs entwickelte ich mit reinem HTML, später dann mit ASP, dann mit Java Servlets und JSP, danach mit ASP.NET und ASP.NET MVC. Zwischendurch machte ich kurze Bekanntschaft mit PHP und dem LAMP Stack, später mit Ruby on Rails.
Ein Blick aus der SAP-Welt ...
Im Rahmen meiner Tätigkeit als SAP Trainer kam ich jedoch auch mit SAP-eigenen Technologien wie HTML Business, Business Server Pages, Java WebDynpro, ABAP WebDynpro und seit neuestem SAPUI5 in Kontakt.
SAPUI5 ist eine clientseitige JavaScript-Bibliothek, die auf jQuery aufbaut und ein Model-View-Controller (MVC) Programmiermodell implementiert. Mit dem SAP-Backend kommuniziert SAPUI5 über OData Services. Klassischerweise ist das SAP-Backend ein ABAP-Server.
Seit ein paar Jahren bietet SAP eine hochperformante, spaltenorientierte, In-Memory-Datenbank an, SAP HANA. Auf diese Datenbank wurde später ein kleiner Applikationsserver draufgeflanscht, mit der man OData-Services über reine Konfiguration und andere HTTP-Services über serverseitiges JavaScript entwickeln kann.
Serverseitiges JavaScript?! Noch nie gehört!
Ja, serverseitiges JavaScript! Sofort leuchtete mir die Idee ein: Ein und dieselbe Sprache für den Client und den Server, das macht Sinn. Ob diese Idee auch auch außerhalb des SAP-Ökosystems verwirklicht wurde? Und wie!
... ins freie JavaScript-Universum ...
Die vergangenen zwei Wochen habe ich intensiv verschiedene Wikipedia-Artikel und Blog-Artikel gelesen und kam mir vor, als ob ich die letzten paar Jahre unter einem Stein verbracht habe. Während dieser Jahre ist ein gigantisches JavaScript-Universum entstanden, mit einer unzähligen Vielzahl von Technologien, Bibliotheken, Frameworks und Entwicklungsprojekten. Die folgenden Flaggschiff-Produkte wurden immer wieder erwähnt:
- V8. Die superschnelle JavaScript Engine von Chrome
- Node.js. Ein serverseitiges JavaScript-Framework, das auf V8 basiert und JavaScript aus dem Browser befreit.
- Express. Ein minimalistisches Web-Framework für Node.js.
- MongoDB. Eine NoSQL-Datenbank, die Daten in Form von JavaScript Object Notation (JSON) Dokumenten speichert.
- AngularJS. Ein clientseitiges JavaScript-Framework zur Entwicklung von MVC-Anwendungen.
Zusammen bilden diese Produkte die Säulen des MEAN-Stacks, bestehend aus MongoDB, Express, AngularJS und Node.js.
Diese Technologien werden von einer lebhaften Gemeinschaft begeisterter Menschen entwickelt und genutzt. Von dieser Begeisterung ließ ich mich anstecken und fasste einen Entschluss:
Ich will den MEAN-Stack lernen, verwenden und erklären!
... und der Beginn einer Expedition ...
Dies ist der Beginn einer gewaltigen Expedition mit einigen Zwischenzielen, die ich erst ungefähr auf einer ungenauen Karte einzeichnen kann:
- Überblick über den MEAN Stack verschaffen
- Erste kleine Projekte mit dem MEAN Stack machen
- Einen Blog über meine Erfahrungen führen
- Größere Projekte verwirklichen
- Vorträge halten, Bücher schreiben, Trainings durchführen
Für das Erreichen der ersten Ziele steht mir diese Ausrüstung zur Verfügung:
- Das Buch Write Modern Web Apps with the MEAN Stack von Jeff Dickey.
- Das Free Code Camp, eine Gemeinschaft von Menschen, die programmieren lernen will, indem sie Full-Stack JavaScript-Projekte für gemeinnützige Organisationn durchführt.
- Ghost, eine Blogging-Plattform, die auf Node.js basiert.
Ich bin darauf gespannt, wer mir auf dieser Expedition begegnen wird und was ich dabei sehen, erfahren und lernen werde. Und ich freue mich darauf, das gewonnene Wissen weitergeben zu können und von meinen Erlebnissen berichten zu dürfen.