JavaScript @ codecentric – Teil 1: Trends und Treiber

Keine Kommentare

Die codecentric ist traditionell ein Java-Haus, unsere Kunden setzen stark auf die Technologien rund um die JVM. Das Web war dabei immer ein wichtiger Faktor, doch die web-basierten UIs, speziell die Rich-Client-Oberflächen, wurden eher nachrangig behandelt. Doch in den letzten Jahren vollzog sich ein Wandel sowohl im Bereich der Webtechnologien und Client-Plattformen als auch in den Mustern, wie Nutzer das Web und die Angebote darin verwenden. Auch unsere Kunden und wir spüren diesen Trend. Immer mehr unserer Projekte verlangen gutes Know-How im Bereich JavaScript-basierter Anwendungsentwicklung.

Ich möchte in dieser Serie einen Einblick geben, was Web-Frontend-Entwicklung bei codecentric ausmacht. Im Laufe dieses Jahres werden nun Interviews mit codecentricern entstehen und hier veröffentlicht werden. Gerne nehme ich auch die Fragen der Leserschaft mit in diese Interviews auf: Schreiben Sie diese einfach in die Kommentare.

Doch zunächst möchte ich ein paar Veränderungen beleuchten, die, wie ich meine, die wichtigsten Treiber für den oben genannten Trend sind.

#1: Smart Mobile Devices

Seit dem Siegeszug der Smartphones und Tablets verändern die mobilen, webfähigen Geräte die Nutzung des Webs. Die Geräte sind leistungsfähig, so dass diese attraktive und interaktive UIs ermöglichen. Diese Geräte aber haben auch neue Nutzerschichten erschlossen, dank intuitiver Bedienkonzepte und Konzentration auf einzelne Funktionalitäten, meist in Apps gekapselt.
Dadurch, dass die Nutzer auch oft mehrere unterschiedliche Geräte haben und nutzen, wurde auch die so genannte User Journey fragmentierter als zuvor. Dabei geht es darum, dass der Nutzer einen Prozess zu unterschiedlichen Teilen auf verschiedenen Geräten durchläuft. Zum Beispiel kann ein potentieller Kunde auf seinem Smartphone in der Bahn auf eine Anzeige klicken, sich ein Reiseangebot ansehen und merken. Später würde er auf seinem Tablet im Garten das Angebot genauer ansehen, evtl. auch Vergleiche anstellen. Später packt er die Reise in den Warenkorb. Nach ein paar Tagen würde er auf seinem PC den Warenkorb wieder aufnehmen und die Reise online buchen und bezahlen.

Die Herausforderung hier ist, stets dem Nutzer eine einheitliche User Experience zu ermöglichen. Oftmals ist hier es einfacher, eine Oberfläche zu gestalten, die sich an unterschiedliche Geräte anpasst. Seit ein paar Jahren haben wir die Technologien, die das ermöglichen.

#2: HTML5, CSS3 und moderne JavaScript Engines

Die Webstandards haben sich weiterentwickelt. Die Vorstellung von inkonsistenten APIs und langsamer Scriptausführung ist schon lange überholt. Moderne Browser können freiheraus als vollwertige Application Runtimes angesehen werden. Mit HTML5 wurde der Bedarf an Technologien wie Flash erheblich minimiert. CSS3 bietet eine Unmenge an Möglichkeiten, das Layout, die Darstellung, die Animationen und Transitionen zu beeinflussen. Mit der Canvas API lassen sich 2D-Animationen, mit WebGL sogar 3D-Animationen, nativ und hardware-beschleunigt im Browser darstellen. Die Browserhersteller befinden sich im ständigen Wettbewerb um die beste Performance, was den Entwicklern, Nutzern und Anbietern von Inhalten und Waren zugutekommt.

Das Web ist durch den technologischen Fortschritt des letzten Jahrzehnts mehr und mehr zu einem Betriebssystem geworden, das viele Applikationen beheimatet, die wir jeden Tag nutzen.

#3: Entwickler Werkzeuge und Bibliotheken

Die letzte Entwicklung, die ich hier erwähnen möchte, ist nicht minder wichtig. In den ersten zehn Jahren konnte man den Browser schon fast als feindliche Umgebung für ernsthafte Softwareentwicklung ansehen. Die APIs waren nicht standardkonform, JavaScript langsam und voller Fallen, Komponenten ein Fremdwort, Testing war was für’s Outsourcing und die Unterstützung durch die Werkzeuge kaum nennenswert.

Doch seit AJAX Mitte der nuller Jahre des 21. Jahrhunderts aufkam, passierte einiges. Heutige IDEs und Editoren bieten all den Komfort, den man aus anderen Sprachen gewohnt ist. Die Qualitätssicherung mit Hilfe von statischer Codeanalyse mit Lintern sowie umfangreiche Test-Werkzeuge haben es ermöglicht hohe Standards zu etablieren. Das Ecosystem an Build-Tools ist inzwischen eines der reichsten sowohl an Funktionalität wie auch an konzeptionellen Alternativen und Vorgehen. Mit – früher Bower und nun – npm wurde das Management der Abhängigkeiten adressiert.

Damit war es möglich, dass das Ecosystem der Bibliotheken für JavaScript eines der Größten überhaupt wurde. Von bedeutenden Projekten wie jQuery, Angular, React und co bis hin zu kleinsten Paketen, die kaum größer als 10 LoC sind, ist alles vertreten. Damit findet ein Entwickler unterschiedlichste Angebote, die er nutzen kann. Diese reichen von der Lösung kleinster Probleme bis hin zu völlig neuen Paradigmen der Software Entwicklung.

Und selbst wenn JavaScript trotzem nicht als Primärsprache für die Entwicklung infrage kommt, haben wir eine Auswahl an Sprachen, die das Ziel haben, JavaScript als Kompilierungsziel zu nutzen, Sprachen wie TypeScript, CoffeeScript, Elm und ClojureScript.

Fazit

Es gibt sicherlich noch einige weitere Entwicklungen, die ich hier nicht erwähnt habe. Doch diese drei sind meiner Meinung nach die wichtigsten. Die mobilen Geräte haben den Markt verändert, die technologischen Entwicklungen haben es neuen Wettbewerbern ermöglicht, in alte Märkte vorzudringen und mit neuen Konzepten Druck auszuüben. Die Verbesserung der Entwicklerwerkzeuge haben letztlich die Hürden reduziert, das Web als Geschäftsplattform zu nutzen.

Demnächst können Sie Berichte aus unserem Alltag hier lesen. Gerne nehme ich Ihre Fragen auf. Schreiben Sie mir einfach einen Kommentar.

Spüren Sie selbst diesen Trend? Sprechen Sie mich an, und wir reden darüber!

Tags

Gregor Elke spezialisiert sich auf Themen rund um JavaScript-Entwicklung. Ob verteilte Services mit Node.js oder Web-Frontends mit Angular, React oder ganz ohne, JavaScript hält überall Einzug.
Er teilt seine Begeisterung für JavaScript gerne mit anderen, daher gibt er gerne Schulungen und Coachings in diesen Themenbereichen.
Gregor Elke organisiert auch die Hamburger Node.js User Group.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Artikel von Gregor Elke

Flexible Architekturen

Is Node.js a superhero?

Flexible Architekturen

Ist Node.js ein Superheld?

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *