Angular 4.0 – JavaScript im Anzug

Angular 4.0 – JavaScript im Anzug

JavaScript-Frameworks schießen wie Pilze aus dem Boden: Hat das aktuell prominenteste Framework Angular einen Platz in der Business-Welt verdient?

War das Internet vor 20 Jahren noch sehr statisch, so finden sich heute kaum noch Websites ohne dynamische Elemente. Bei vielen großen Internetanwendungen wie YouTube geht man sogar noch ein Stück weiter. Auch wenn es nicht jedem auf den ersten Blick auffällt, so ruft man auf YouTube eigentlich nur eine einzige Seite auf. Das erfolgreiche Video-Portal wurde als Single Page Application realisiert. Beim Klick auf ein Video wird die Seite dynamisch umgebaut, aber nie wirklich verlassen. So bleibt das Menü auch während des gefühlten Seitenwechsels stehen und bedienbar. Für den Anwender erscheint die gesamte Webanwendung flüssiger und reaktionsfreudiger. Der Browser hat sich von einem reinen Anzeigetool für verlinkte Markup-Texte (HTML) zum flexiblen Host für Rich-Client-Anwendungen gewandelt.

Typische Frameworks für die Webentwicklung von Business-Anwendungen arbeiten jedoch eher nach einem Thin-Client-Prinzip. Mit ihnen Single Page Applications wie YouTube zu bauen, ist mühselig und halbgar. Glücklicherweise lockt der Open-Source-Markt mit ständig neuen JavaScript-Lösungen zur Rich-Client-Entwicklung. Aus dem stetig wachsenden Dschungel an Frameworks ragt eine Lösung hervor: Angular, das auf den Schultern des Internetgiganten Google steht.

Was ist Angular?

Über Jahrzehnte gewucherte Entwicklungen im Bereich der Browser und ihrer HTML-/JavaScript-Unterstützung werden bei Angular mit einem komponentenbasierten Model-View-Controller-Ansatz über den Haufen geworfen. Anstatt sich mit dem Aufbau ganzer Seiten und deren gesamter Logik auseinanderzusetzen, hält Angular den Entwickler an, kleine funktionale Module zu entwerfen. Diese Module lassen sich leicht wie ein Baukastensystem zu ganzen Single Page Applications zusammenbauen.

Versionschaos sorgte für Frust

Angular ist bei Weitem kein neuer Player in der JavaScript-Welt. Seit dem Erscheinen im Jahr 2009 begeistern sich immer mehr Entwickler für Angular. Ende letzten Jahres wurde die zweite Version veröffentlicht und seit Ende März 2017 ist die Version 4.0 verfügbar.

Für die Entwickler war dies ein mehr als steiniger Weg. Zwar griff Angular 2.0 die Grundphilosophie von Angular 1.0 auf, jedoch wurde das Framework so radikal umgebaut, dass es einen neuen Namen verdient hätte. Während man Angular 1.0 noch als Bibliothek sehen konnte, die sich in ein Projekt einfügt, ist Angular 2.0 ein Framework, das man als Basis für sein Projekt nimmt oder lieber gar nicht erst einsetzt. Die Aufwände einer (manuellen) Migration dürften sich im Bereich einer Neuentwicklung befinden.

Vom Start im Jahr 2014 bis zur Veröffentlichung im September 2016 war es vor allem für die Early Adopter eine Herausforderung, Projekte mit Angular 2.0 zu entwickeln. Auch während der Zeit der Release Candidates wurden, entgegen der ansonsten in der Softwareentwicklung üblichen Praxis, immer wieder die Schnittstellen des Frameworks geändert. Für die Projekte bedeutete dies größere Aufwände, um nicht den Anschluss zu verlieren. Häufig waren Anleitungen und Lösungen, die sich im Internet befanden, bereits nach wenigen Tagen oder Wochen veraltet. Frust bei den Entwicklern war somit vorprogrammiert.

Analog zu den banalen Gründen für das Überspringen der Version 9 von Windows übersprang Angular Version 3. Wegen interner Versionskonflikte hatte man sich dazu entschieden, nach Version 2.0 direkt mit Version 4.0 weiterzumachen – eine Komponente des Frameworks hatte bereits die Version 3.0 überschritten.

Was ist neu in Version 4.0?

So groß die Änderungen zwischen Version 1.0 und 2.0 waren, so klein sind nun die Änderungen, die sich mit Version 4.0 ergeben. Der Versionswechsel von Version 2.0 auf 4.0 sollte wegen der größtenteils vorhandenen Abwärtskompatibilität ein leichtes Unterfangen sein.

Änderungen „unter der Haube“ ermöglichen Anwendungen, die typischerweise nur die Hälfte an Datenvolumen verbrauchen (im Vergleich zu Angular 2.0) und somit schneller auf den Endgeräten der Kunden landen. Die meisten weiteren Änderungen verbergen sich eher im Detail und eine schöne Aufstellung ist z.B. auf dem Blog Ninja Squad zu finden. Wer nichts verpassen will, hält sich mit dem gut gepflegten Changelog auf dem Laufenden.

Ready for industry!

Der eine mag von den Detailänderungen enttäuscht sein, weil er sich mehr von dem großen Versionssprung erwartet hat. Der andere freut sich, dass Angular nun endlich eine stabile Entwicklung erreicht hat. Die Versprechungen sind immerhin, dass nun nur noch jedes halbe Jahr mit „Breaking Changes“ zu rechnen ist (also mit Änderungen, die Anpassungen an bestehenden Projekten erfordern).

Doch nicht nur die Stabilität ist entscheidend für den Einsatz von Angular. Als Framework bringt Angular endlich Ordnung in die oft ungeliebte Welt der JavaScript-Entwicklung für den Browser. Microsofts TypeScript, das auf JavaScript aufbaut, wird am häufigsten für die Angular-Entwicklung eingesetzt. Es verhindert die typischen JavaScript-Fehler, die auf die schwache Typbindung der Sprache zurückzuführen sind, bereits bei der Entwicklung – sie werden nicht erst zur Laufzeit entdeckt.

Die klar vorgegebene Struktur sorgt für einheitlichere Projekte und eine bessere Modularisierung. Entwickler, die neu in ein Angular-Projekt kommen, dürften sich freuen, dass sie sich nicht erst in eine individuelle Infrastruktur einarbeiten müssen. Die Aufteilung der Funktionalität in kleine Komponenten, wie sie Angular 4.0 durch den zum Framework gehörenden Style Guide fast schon erzwingt, sorgt dafür, dass Entwickler auch in größeren Projekten den Überblick behalten.

Adaption und Konkurrenz

Gerade die klaren Vorgaben, die das Framework macht, sind für mich ein deutlicher Vorteil gegenüber anderen Frameworks. Ein Vergleich der Suchtrends der 5 aussichtsreichsten JavaScript-Frameworks zeigt deutlich, wer momentan die Nase vorn hat. Obwohl Angular 2.0/4.0 zu den jüngeren Projekten gehört, entwickelt es sich am schnellsten.

Das Umfeld muss noch aufholen

Neben den Hürden der Versionsgeschichte bringt Angular weitere Herausforderungen mit sich, die mit einem so jungen Framework verbunden sind. Auch wenn das Framework fertig ist, das Umfeld braucht noch etwas Zeit, damit ein produktionsreifes Ökosystem wie beispielsweise um JSF entsteht. So werden die ersten Gehversuche nicht schön aussehen, da viele Komponenten noch in der Entwicklung sind. Bootstrap befindet sich noch in der Alpha-Version, Material Design für Angular in der Beta-Phase. Da ist der vornehmlich aus der JSF-Entwicklung bekannte Anbieter PrimeFaces mit Release Candidates schon weiter.

Des Weiteren müssen Entwickler bei einem Wechsel zu einem Rich Client Framework mehr Augenmerk auf Sicherheit legen. In der Thin-Client-Entwicklung könnte man beispielsweise in Versuchung kommen, in der Präsentationsschicht einer Drei-Schichten-Architektur eine Schaltfläche für bestimmte Nutzerkreise auszublenden. Der Aufruf eines entsprechend angebundenen Services in der Logikschicht wäre damit unmöglich. In einer Angular-Anwendung mit REST-Schnittstelle liegt der Service hingegen offen und kann von entsprechend versierten Angreifern auch dann aufgerufen werden, wenn die Schaltfläche ausgeblendet ist. Ohne entsprechende Absicherung des Services wäre dies eine Rechteauswertung und potenziell eine gravierende Sicherheitslücke. In meinen Augen sollte man diese Herausforderung jedoch als Chance für erhöhte Qualität sehen. Klare Schnittstellen mit expliziten Sicherheitsmaßnahmen rücken mit den Rich Clients in den Vordergrund.

Dynamischen Anwendungen gehört die Zukunft

Der Trend zu modernen Webanwendungen, die mit bewährten Thin-Client-Ansätzen brechen, ist nicht von der Hand zu weisen. Das inzwischen stabile Angular Framework bringt alle Voraussetzungen mit, um in Projekten im Business-Umfeld eingesetzt zu werden.  Auch wenn noch einige Stolpersteine existieren, sollte der Anschluss an den Trend zu Rich Clients nicht verpasst werden. Die gesteigerte Kundenakzeptanz durch flottere Oberflächen und die Entwicklungsperformance durch klare Modularisierung sprechen eindeutig für Angular.

Ich für meinen Teil freue mich darauf, dass sich das Internet in Zukunft weiter von einem Web der statischen Seiten hin zu einem mit dynamischen Anwendungen entwickelt.

 

Bildquellen: Shutterstock / Brian A Jackson und Angular (Google) unter https://creativecommons.org/licenses/by/4.0 (Das Bild wurde durch Hinzufügen des Angular-Logos bearbeitet.)

Hinterlassen Sie eine Antwort

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