Suche
Sechs Experten kommentieren aktuelle Entwicklungen im Web – Teil 1

JavaScript im Expertencheck: Trends & Herausforderungen für Webentwickler

Hartmut Schlosser

© Shutterstock / TierneyMJ

Wir haben sechs Experten nach dem Status Quo der Webentwicklung befragt. Wie stellt sich aktuell die JavaScript-Szene dar? Welche Trends sind wichtig? Welche Herausforderungen gilt es zu meistern?

JavaScript Expertencheck: Aktuelle Trends und Herausforderungen in der Webentwicklung

Entwickler: Die JavaScript-Szene hat den Ruf, besonders schnelllebig und fragmentiert zu sein. Mit TypeScript, Node, Angular, React und Vue.js scheinen sich derzeit allerdings einige Konstanten herauszukristallisieren. Können wir da so eine Art Konsolidierung der JavaScript-Welt beobachten?

Nils Hartmann: Das ist richtig. Zwar gibt es noch immer nicht den einen Standard-Stack für JavaScript-Anwendungen, aber es zeichnen sich doch gewisse Trends ab. Gleichzeitig bleibt es aber dabei, dass in vielen Bereichen immer noch viel Bewegung herrscht und immer wieder neue Ideen diskutiert und ausprobiert werden.

Zwar gibt es noch immer nicht den einen Standard-Stack für JavaScript-Anwendungen, aber es zeichnen sich doch gewisse Trends ab.

Dass das so ist und sich vermutlich auch nicht so schnell ändern wird, liegt auch in der Natur der Sache, denn es gibt im JavaScript-Umfeld nicht das eine Konsortium oder die eine Firma, die alles steuert, spezifiziert und weiterentwickelt (wenn man von der Sprache selber absieht). Ich finde aber, davon sollte man sich nicht verrückt machen lassen, denn man muss ja nicht jedes neue Tool und jedes neue Framework gleich in das eigene Projekt einbauen, sondern muss neue Dinge nur adaptieren, wenn man dafür Bedarf im Projekt hat.

Jens Grochtdreis: Ich denke schon, dass es eine Konsolidierung gibt. Es ist nur die Frage, wie lange diese anhält. Vor fünf Jahren hätte doch niemand gedacht, dass es mal Projekte gibt, die an jQuery vorbeiziehen. Mittlerweile gibt es ja schon Artikel darüber, wie ich für bestimmte Aufgaben Vue.js an Stelle von jQuery benutzen kann. Und da Angular und React von großen Unternehmen sind, die irgendwann evtl. eine vollkommen neue Richtung einschlagen, kann es sein, dass wir in fünf oder acht Jahren über ganz andere Frameworks sprechen. Aber das gehört zum Frontend dazu. Das macht den Job spannend.

Die JavaScript-Experten

 JavaScript Experte Nils Hartmann

Nils Hartmann – Softwarearchitekt bei EOS Technology Solutions

JavaScript-Experte - Jens Grochtdreis

Jens Grochtdreis – Gründer der webkrauts

JavaScript-Experte Karsten Sitterberg

Karsten Sitterberg – Freiberuflicher Angular-Experte, Kolumnist bei JAXenter

JavaScript-Expertin Yara Mayer

Yara Mayer – Expert Consultant bei evia

JavaScript-Experte Michael Sand

Michael Sand – Consultant bei CA Technologies

JavaScript-Experte Golo Roden

Golo Roden – Gründer und CTO der the native web GmbH

Karsten Sitterberg: Mit Angular haben wir ein Framework, das momentan ein Alleinstellungsmerkmal besitzt, da es als einziges der großen Frameworks ein Full-Stack Frontend-Framework ist. Sowohl Komponenten, als auch Services, Formulare, Backend-Kommunikation und Routing werden von Angular aus einer Hand gelöst. gelöst. Weiterhin bietet Angular bereits eine gute Interoperabilität mit dem Web-Components-Standard, sodass man mit Angular auf ein gutes „Enterprise-ready“ Framework setzt.

Natürlich haben auch andere Frameworks wie React und Vue.js ihre Berechtigung. Eine Konsolidierung wird vor allem in Hinblick auf den Web-Components-Standard stattfinden, sodass es auch weiterhin neue Frameworks und Libraries geben wird, die dann aber potentiell auf einer gemeinsamen Basis aufbauen und dadurch miteinander harmonieren und gemeinsam eingesetzt werden können.

Yara Mayer: Ich denke schon, dass die JavaScript-Welt sich gerade konsolidiert. Vielleicht, weil alle zunehmend merken, dass es doch ein Tick zu viel ist. Man könnte sagen, dass es in dem Moment angefangen hat, als Node.js und io.js wieder zusammengeführt wurden. Natürlich ist es wichtig, neue Ideen auszuprobieren, aber man merkt, dass das JS-Ökosystem in letzter Zeit doch ziemlich erwachsen geworden ist und es nicht mehr so leicht ist, mit einem neuen Framework oder einer neuen Lib überhaupt Aufmerksamkeit zu bekommen.

Typescript ist mittlerweile auch quasi der Defacto-Standard geworden – und das sage ich als ehemalige JavaScript-Puristin, die sehr gerne mit JSDoc gearbeitet hat. Es zeigt wieder, dass das Tooling doch einen großen Teil unseres Development-Workflows bestimmt. Wenn der TS Compiler und die ganzen IDEs nicht so ein hervorragendes IntelliSense (und damit riesige Vorteile) mitbringen würden, wäre es nur eine Nischen-Sprache geblieben.

Michael Sand: Ich denke, man kann davon ausgehen, dass diese Frameworks sich in den nächsten Jahren weiterhin weiterentwickeln – aufgrund der großen Community und der stabilen Architektur. Diese Frameworks werden für die UI-Entwicklungen genutzt, dadurch ist man auch frei in der Auswahl der Sprache für Backend-Systeme. Was aber in den nächsten Jahren wirklich passiert, kann niemand sagen ;).

Golo Roden: Die JavaScript-Szene hat nicht nur den Ruf, schnelllebig zu sein, sie ist es! Trotzdem stimmt es aber, dass sich inzwischen einige Konzepte und Technologien etabliert haben, bei denen man davon ausgehen kann, dass sie auch langfristig erhalten bleiben. Auf dem Server ist das zum Beispiel mit dem Framework Express so, das seit einigen Jahren praktisch den Standard zum Definieren von Web-APIs darstellt.

Ähnliches gilt im Frontend, wobei ich es dort weniger an den Technologien, sondern mehr an den Konzepten festmachen würde. Das, was sich beispielsweise mit Angular oder React manifestiert, ist nicht einfach nur eine Technologie, sondern eine hervorragende Umsetzung eines bestimmten Paradigmas. Bei React ist das wie bereits erwähnt der funktionale Ansatz.

Anders gesagt: Wer in der UI funktional programmieren will, wird es schwer haben, eine bessere Lösung als React zu finden, weil React eine hervorragende Umsetzung des funktionalen Paradigmas darstellt. Deshalb haben es andere Bibliotheken und Frameworks auch zunehmend schwer, sich gegen React durchzusetzen: Das zu Grunde liegende Paradigma lässt sich nur schwerlich besser umsetzen.

Das gleiche gilt für Angular, nur dass es dort die objektorientierte statt der funktionalen Programmierung ist, die als grundlegendes Paradigma gilt. Wer in der UI objektorientiert programmieren möchte, wird es schwer haben, ein besseres Framework als Angular zu finden – auch hier wieder deshalb, weil Angular einfach eine hervorragende Umsetzung des zu Grunde liegenden Paradigmas darstellt.

Wer in der UI funktional programmieren will, wird es schwer haben, eine bessere Lösung als React zu finden.

Die Frage nach React oder Angular ist also weniger eine Frage nach der jeweiligen Technologie, sondern letztlich nach den darunter liegenden Konzepten und Überzeugungen: Favorisiert man das funktionale Paradigma oder eher das objektorientierte? Davon hängt stark ab, in welchem Umfeld man sich eher zu Hause und gut aufgehoben fühlt.

Übrigens gilt nochmals das Gleiche auch für TypeScript. Die Sprache setzt das Konzept einer objektorientierten Programmiersprache, die auf einem statischen Typsystem basiert, gut um. Deshalb wird es in so vielen Unternehmen von C#- und Java-Entwicklern genutzt. TypeScript holt die Entwickler dort ab, wo sie sich auskennen und wohlfühlen.

Ganz am Ende steht also die Frage, welches Paradigma man höher wertschätzt. Die Antwort auf diese Frage beeinflusst dann, für welche Technologien man sich entscheidet. Mir persönlich liegt der funktionale Ansatz aus den eingangs genannten Gründen mehr, weshalb ich mich wesentlich stärker mit React und reinem JavaScript verbunden fühle als mit Angular und TypeScript.

Letztlich muss das aber jeder für sich entscheiden und individuell bewerten, wie wichtig zum Beispiel die Parallelisierung und die Nachvollziehbarkeit von Code sind.

For free: The iJS React Cheat Sheet

For free: The iJS React Cheat Sheet

You want to get started with React? Our Cheat Sheet includes all the most important snippets. Get the sheet for free!

 

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)

Trends im Web: JavaScript, CSS, GraphQL

Entwickler: Wenn du dir die aktuelle Szene der Webentwicklung anschaust – welcher Trend interessiert dich persönlich momentan am meisten?

Nils Hartmann: Aktuell finde ich das Thema GraphQL ganz spannend. GraphQL wird häufig als Alternative zu REST bezeichnet und ist eine Sprache mit der Daten vom Server abgefragt werden können. Diese Technologie verspricht etwas mehr Flexibilität als REST, da der Client selber bestimmen kann, welche Daten er für welchen Use-Case laden möchte. Außerdem verfügt GraphQL über ein Typensystem, mit dem die API beschrieben wird. Dadurch ergeben sich sehr interessante Möglichkeiten z.B. für Tooling innerhalb der IDE oder auch Prüfungen zur Laufzeit. Ich denke, GraphQL ist auch schon so weit, dass man es guten Gewissens in eigenen Anwendungen einsetzen kann. Fairerweise muss man aber auch sagen, dass es (noch) weit davon entfernt ist, Mainstream zu sein oder gar REST abzulösen. Trotzdem bin gespannt, wie sich GraphQL in Zukunft weiterentwickelt, welche Lösungen daraus hervorgehen und natürlich auch welche neuen Probleme sich ergeben.

Jens Grochtdreis: Ich interessiere mich nicht für Trends. Aber die Technik, mit der ich am ehesten endlich mal arbeiten möchte, sind CSS-Grids. Doch dafür müsste ich sicherlich erst einmal in einem Projekt alle Designer über die neuen Möglichkeiten aufklären. Und das ist bei diesem Thema alles andere als einfach. Noch ein Grund mehr, warum Designer und Entwickler möglichst eng zusammenarbeiten sollten.

Karsten Sitterberg: Besonders Interessant ist momentan natürlich die Entwicklung von Web Components mit Angular Elements. Außerdem hege ich schon länger ein Interesse für die Umsetzung komplexer grafischer Komponenten, zum Beispiel mit SVG aber auch WebGL.

Trends in Technologien bewegen sich weitgehend im Kreis.

Yara Mayer: Trends in Technologien bewegen sich weitgehend im Kreis. Wir erreichen einen bestimmten Höhepunkt und kommen dann immer wieder zurück zu den Basics. Ein Beispiel dafür ist, wie sehr Angular und React von der DOM abstrahiert sind und wie wir uns langsam Richtung „Custom Elements“ bewegen. Selbst Vue.js orientiert sich schon lose daran. Deswegen versuche ich immer, pragmatisch zu bleiben, alles neutral zu betrachten und die interessantesten Konzepte zu verwenden.

Aber ich freue mich darauf, was als nächstes kommt. Ich denke, vor allem dort, wo es um Schnittstellen geht, aber auch im Thema Frontend vs/+ Backend, wird sich noch einiges bewegen.

Michael Sand: Crossplattform Development und deren Anbindung an Schnittstellen z.B. Hypermedia-Rest-ähnliche.

Golo Roden: In der UI ist das definitiv die gerade angesprochene Möglichkeit, CSS mit JavaScript abzubilden. Generell bin ich davon überzeugt, dass JavaScript noch viel stärker in den Mittelpunkt der Webentwicklung rücken muss, und dass eine viel stärkere Komponentenorientierung à la React gut täte. Wir haben derzeit mit HTML, CSS und JavaScript nicht die so oft beschworene Separation of Concerns, sondern de facto lediglich eine Separation of Languages. Mit React verschwimmt die Grenze von HTML und JavaScript, mit Projekten wie JSS verschwimmt die Grenze zwischen CSS und JavaScript.

JavaScript hat ein ausgereiftes und funktionierendes Modell für Komponenten. Es gibt zahllose Werkzeuge. Es gibt mit npm eine Paketverwaltung mit einer riesigen Community. Wenn es gelingt, HTML, CSS und JavaScript zu einer gemeinsamen Sprache zu vereinen, die es leichter ermöglicht, gut strukturierte und besser wartbare Software zu bauen, dann wäre das ein großer Schritt nach vorne. React trägt dazu einen Teil bei, und auch das ist ein Grund, warum ich React sehr schätze.

Zu guter Letzt glaube ich, dass den ganzen aktuellen Hypes wie Serverless zum Trotz die klassische Methodenkompetenz gerade im Bereich Architektur nach wie vor gefragt ist. Anwendungen zu entwickeln bedeutet mehr, als möglichst viel an andere zu delegieren, und ein wirkliches Verständnis eines Systems braucht man nach wie vor, wenn man es vernünftig entwerfen und gestalten will. Insofern begeistert mich im Grunde genommen alles, was dazu beiträgt, ein tieferes Verständnis von den Themen zu entwickeln, mit denen wir uns tagtäglich beschäftigen.

UX Design im Videotutorial

Im entwickler.tutorial UX Design mit Angular, HTML & CSS bietet Timo Korinth, freiberuflicher UX-Entwickler, Berater und Trainer, einen Überblick über UX, Design, Konzeption und Entwicklung, sowie praktischer Tipps und Tricks aus der jahrelangen Erfahrung als UI-Entwickler.

Herausforderungen im Web

Entwickler: Und welchen Missstand würdest du gerne am schnellsten behoben sehen?

Nils Hartmann: Ich würde mich freuen, wenn die Frontend-Entwicklung einen ähnlichen Stellenwert bekäme wie die Entwicklung von Services im Backend. Häufig wird die Frontend-Entwicklung immer noch als “Entwicklung zweiter Klasse” angesehen und “richtige” Entwicklung fände nur im Backend statt. Dabei ist Frontend-Entwicklung sehr viel mehr als ein “paar Pixel” mit CSS hin- und herzuschieben. Immerhin wollen wir, dass unsere Anwendungen auf allen möglichen Geräten in diversen Auflösungen laufen, unter allen möglichen und unmöglichen Netzwerk-Bedingungen, dass sie immer schnell reagieren und natürlich fehlerfrei sind. Das zu erreichen, ist meines Erachtens genauso “richtige” Software-Entwicklung wie die Entwicklung von Backend-Services.

Jens Grochtdreis: Ich finde, es gibt immer noch zu viele Entwickler, die sich nicht dafür interessieren, ob ihre Webseiten und Applikationen in möglichst vielen Browsern funktionieren. Es gibt sogar große Webseiten, die es als okay ansehen, dass ihre Webseite nur im Chrome funktioniert.

Und ganz allgemein wünsche ich mir, dass das Verständnis für die technischen Möglichkeiten und Beschränkungen, mit denen wir umgehen müssen, endlich voll zu allen Designern und Kunden durchdringen. Ich habe leider noch immer zu viele negative Erfahrungen dahingehend, auch noch 2018.

Karsten Sitterberg: Mich stört die übermäßige „Religiösität“ der Anhänger von verschiedenen Ansätzen, Web Frontends zu bauen. Damit sind sowohl unterschiedliche Architekturansätze, wie Serverside-Rendering oder clientside Rendering gemeint, als auch unterschiedliche Frameworks, wie etwa Angular oder React. Hier finde ich, dass jeder Ansatz seine Einsatzzwecke hat, und es von den Anforderungen und Rahmenbedingungen abhängt, welchen Ansatz man weiter verfolgt.

Mich stört die übermäßige „Religiösität“ der Anhänger von verschiedenen Ansätzen, Web Frontends zu bauen.

Yara Mayer: Wenn wir über CSS reden, dann ist es der Gedanke, dass CSS entweder doof, unwichtig, unerklärlich (aber gleichzeitig einfach) oder sogar „nichts für echte Entwickler“ ist. Das Problem ist, dass viele denken, CSS wäre simpel. Doch CSS ist viel komplizierter als Programmiersprachen. Warum?

  • Alleine die Matrix aus möglichen Betriebssystemen, Browsern und Browser-Versionen sorgt für unendliche Möglichkeiten, dass irgendetwas anders als erwartet funktioniert.
  • Es gibt extrem viele Konzepte, die man beherrschen muss, um CSS überhaupt gut schreiben zu können – insofern als man wissen muss, warum das eine oder andere funktioniert bzw. nicht funktioniert.
  • CSS über den Lifecycle einer Application zu pflegen und sauber zu halten ist eine große Herausforderung, da Refactoring nur bedingt möglich ist und manchmal aufgrund von Zwischenabhängigkeiten oder der Benutzung eines CMS (wo HTML manchmal in der Datenbank gespeichert wird) gar nicht infrage kommt.
  • Man kann zwar debuggen, aber wenn es einen „Bug“ gibt, ist es nicht so, dass man es über einen log oder Ähnliches mitbekommen könnte. Es ist nur visuell. Es gibt mittlerweile Lösungen, den CSS durch Screenshots usw. zu testen. Diese sind aber ziemlich aufwändig zu pflegen, da ein Kitchensink-Test alleine einfach nicht reicht. Meist sind solche Bugs kontextabhängig, weil irgendwelche Regeln unabsichtlich von anderen beeinflusst werden.

Wenn wir über JavaScript reden, ist es das ganze Tooling. Webpack ist für mich die wunderbarste Erfindung der letzten Jahre, aber auch die schlimmste. Doch wenn ich sehe, wieviel Aufmerksamkeit Parcel bekommen hat, dann weiß ich, dass viele Leute der gleichen Meinung sind.

Oder z.B. wie sich die Angular CLI entwickelt hat – sodass man so wenig wie möglich konfigurieren muss und alles „Out-of-the-Box“ funktioniert (ja, es gibt ein paar wichtige Features, die noch fehlen, aber auf die verzichte ich trotzdem gerne). Es gibt natürlich viele Menschen, die sich gerne mit Tooling beschäftigen – und das ist völlig in Ordnung. Aber wenn man sich auf Features konzentrieren möchte, wird es mit viel Tooling eher schwierig. Es ist nicht selten, dass man ein paar Tage lang nur mit Tooling zu kämpfen hat, statt sich auf seine/ihre eigentliche Aufgabe konzentrieren zu können.

Michael Sand: Wenn neue vielversprechende Tools released werden (React-Native) , ist es oft der Fall, dass es Core Changes gibt und der vorhandene Code refactored werden muss.

Golo Roden: Zum einen wäre ich froh, wenn wir den Internet Explorer endlich endgültig als obsolet ansehen könnten. Ich denke, dem wird buchstäblich jeder Entwickler zustimmen. Es ist extrem traurig, wie viel Zeit von kreativen und fähigen Menschen damit verschwendet wird, auf diesen veralteten und unsicheren Browser Rücksicht zu nehmen, weil einige Unternehmen und Konzerne den Aufwand und die Kosten für einen Umstieg scheuen. Im Prinzip hemmen hier einige wenige die Innovationskraft und die Produktivität einer ganzen Branche. Daran muss sich dringend etwas ändern!

Zum anderen hoffe ich, dass der aktuelle Trend, CSS in JavaScript abzubilden, noch mehr Aufschwung erfährt. Auch wenn es beeindruckend ist, was mit modernem CSS inzwischen alles machbar ist, ist es doch unglaublich schwierig, gutes CSS zu schreiben. In praktisch jedem größeren Projekt artet der CSS-Code über kurz oder lang aus und wird äußerst schwierig zu warten. Ansätze wie CSS-Modules greifen hier zu kurz. Schaut man sich die vergangenen 15 Jahre an, hat JavaScript das Web geprägt – und nicht HTML oder CSS. Insofern hege ich hier große Hoffnung, dass CSS in hohem Maße in JavaScript aufgeht.

JAXenter: Vielen Dank für Eure Statements!

Weiter gehts mit Teil 2 unseres Expertenchecks: Wir sehen uns verschiedene Techniken des Einsatzes von CSS an und klären, welchen Nutzen Ansätze wie OOCSS, SMACSS und BEM haben!

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: