Angular-Evangelist Robin Böhm über die Vorzüge der neuen Version: „Mit Angular 2 wird JavaScript erwachsen“
t3n Magazin: Warum hat sich AngularJS den Königsplatz im Bereich der JavaScript-Frameworks erkämpft?
Robin Böhm: Aus meiner Sicht ist dies ganz einfach: Mit AngularJS ist es zum ersten Mal möglich, im Bereich der HTML5-JavaScript-Frontends strukturierte und qualitativ hochwertige Anwendungen zu entwickeln. Dies liegt einerseits daran, dass die Entwicklung mit AngularJS durch klare Konzepte und Vorgaben es sehr leicht macht, wiederverwendbare Komponenten zu erstellen. Andererseits verfolgt das Framework einen stark deklarativen Ansatz. Hiermitlassen sich viele der alltäglichen Standardprobleme sehr einfach durch die Konfiguration von Komponenten lösen.
t3n Magazin: Was hat dich persönlich am meisten überzeugt?
Robin Böhm: Der Fokus auf die testgetriebene Entwicklung und die Einführung des Dependency Injection(DI) Patterns. Damit haben Entwickler in anderen Umgebungen, die oft auf Java oder C# basieren, bereits jahrelang sehr gute Erfahrungen gemacht und wichtige Erkenntnisse gesammelt. Die können wir nun auch in der Welt von Java- Script anwenden. Für mich war AngularJS der nächste große Schritt nach der Einführung von jQuery. AngularJS hat unser Verständnis von modernen Web-Anwendungen und besonders Single Page Applications auf das nächste Level gehoben.
t3n Magazin: Gibt es auch Gründe, die bei der Applikationsentwicklung gegen den Einsatz von AngularJS sprechen?
Robin Böhm: Natürlich! Wie jedes Framework ist auch AngularJS für ganz bestimmte Use-Cases konzipiert – es ist keine Generallösung für alles, was sich irgendwie im Web bewegt. Darum sollten vor der Auswahl des Frameworks zuerst die anstehenden Aufgaben und Probleme klar sein. Auf Basis dieser Analyse kann man dann die verschiedenen Werkzeuge (Frameworks) für das anstehende Projekt bewerten. Eine Herausforderung mit AngularJS ist zum Beispiel der Umgang mit großen Datenmengen auf dem Scope (Der Scope ist das Bindeglied zwischen dem „View (HTML)“ und dem „Controller (JavaScript“), Anm. d. Red.). Dies hat sich seit den Versionen 1.4 und 1.5 zwar stark verbessert, kann bei falscher Implementierung aber immer wieder schnell zu Performance-Problemen führen.
Robin Böhm: Oftmals ist hier aber auch eine Kombination aus Frameworks und Bibliotheken möglich. So können Entwickler sehr einfach einen Großteil der Anwendung in AngularJS schreiben und Performancekritische Komponenten ergänzend etwa in ReactJS programmieren. So können sie die Vorteile aus beiden Welten nutzten. Generell empfehle ich den Teilnehmern in meinen Workshops immer, die Business-Logik möglichst Framework-agnostisch zu schreiben und die Bindung an ein Framework so klein wie möglich zu halten. Dann können sie auch einfach mal Teile austauschen und in ReactJS, AngularJS oder Angular 2 verwenden.
t3n Magazin: Glaubst du, dass das AngularJS-Team den Erfolg der ers- ten Version wiederholen kann?
Robin Böhm: Mit Angular 2 macht das Team im Grunde das, was es mit AngularJS im Jahr 2009 schon sehr gut gemacht hat: Es schaut sich die aktuellen Entwicklungen in der Welt der Webentwicklung an und baut ein Framework, das bereit ist für die Zukunft. Damals haben alle die Augen aufgerissen und waren überrascht, dass man nun eigene Komponenten im HTML anmelden kann und mit DI innerhalb von JavaScript arbeitet. Heute ist das nicht mehr wegzudenken und einige Konzepte von AngularJS sind in die offiziellen Web-Standards eingeflossen. Deshalb würde ich diese Frage mit „Ja“ beantworten.
t3n Magazin: Was sind die großen Neuerungen im Vergleich zu AngularJS 1.x?
Robin Böhm: Vieles von dem, was gerade für Angular 2 in der Entwicklung ist, kennen heute die wenigsten Webentwickler. Das fängt bei TypeScript an: Damit können wir optional Typen verwenden, was uns viel mehr Möglichkeiten bei der statischen Code-Analyse gibt. Durch die Definition von Interfaces fallen viele Breaking-Changes von externen Bibliotheken direkt beim Kompilieren auf, statt erst in der Runtime oder im schlimmsten Fall beim Kunden. Außerdem wird es aber durch die Interoperabilität von Angular hoffentlich auch weitere Frameworks geben, die diesen Weg wählen. JavaScript wird erwachsen und Angular 2 nutzt die neuen Fähigkeiten sehr gut. Ich denke, dass es vielen Entwicklern aus anderen Welten, wie Java und C#, jetzt noch leichter fallen wird, sich hier gut zurecht zu finden.
t3n Magazin: Auf welche Neuerung freust du dich am meisten und warum?
Robin Böhm: Ich verfolge sehr stark und gespannt die Entwicklung des Werkzeuges Angular-CLI . Ein großes Problem bei AngularJS 1 waren die vielen verschiedenen Seed-Projekte. Dadurch hat am Ende dochjeder sein eigenes gebaut und noch eines mehr veröffentlicht. Guidelines reichen einfach nicht. Wer liest sich 37 Seiten Style-Guide durch, bevor er seine erste Zeile AngularJS-Code schreibt? Mit Angular-CLI, das auf Ember-CLI basiert, bekommen wir nun einen Generator vom Core-Team an die Hand.
Robin Böhm: Somit muss ich mir nicht jedes Mal neu Gedanken zur Order-Struktur machen oder den Build-Prozess neu entwickeln. Ich bekomme Best-Practices direkt in Form eines Generators an die Hand. Das spart eine Menge Zeit, die Entwickler sonst mit Tippen oder Vertippen verschwenden. Gerade in unserem Angular-2-Workshop , in dem wir das Werkzeug bereits benutzen, merken wir wie schnell die Teilnehmer Ihre Aufgaben damit lösen. Sie halten sich dann nicht mit dem Anlegen von Datei-Templates auf und können sich auf ihre eigentliche Aufgabe konzentrieren. In echten Projekten bedeutet diese Zeitersparnis natürlich, dass Entwickler endlich die Zeit haben, um Tests zu schreiben. Vorlagen für Tests werden natürlich auch generiert.
t3n Magazin: Wie sollten Entwickler einsteigen, die sich für Angular und vor allem Angular 2 interessieren?
Robin Böhm: Zum Thema AngularJS 1 gibt es mittlerweile sehr viele Inhalte – auch bei uns auf der Plattform. Das Problem hierbei ist, das sich einige Best-Practices erst in den letzten Jahren entwickelt haben und viele Beispiele und Artikel auf alten Versionen aufbauen. Hier versuchen wir mit aktuellen Artikeln die Entwickler auf dem neusten Stand zu halten.Das Angular-2-Thema wird ja gerade erst aktuell, daher gibt es hier noch nicht so viele Informationen. Ich habe dazu aber ein Tutorial inklusive Beispielprojekt geschrieben, das einen guten und schnellen U?berblick über die Konzepte gibt. Auf der offiziellen Webseite angular.io werden die Dokumentationen auch immer besser. Es ist aber natürlich durch die aktuelle Beta-Version schwer validen Inhalt zu publizieren, der nicht mit jedem Update bricht. Die Jungs von Thougthram sind derzeit sehr aktiv und produzieren sehr gute Inhalte zu dem Thema.
t3n Magazin: Wie kompliziert wird eine Migration von Angular-1.x-Anwendungen auf Angular 2?
Robin Böhm: Die Grundlagen für eine sanfte Migration sind hier sehr gut. Wer die A?nderungen ab AngularJS 1.3 verfolgt hat und sich an die dabei entstandenen Empfehlungen gehalten hat, ist für den Umstieg schon auf einem sehr guten Weg. Sicherlich gibt es viele Neuerungen, aber nichts wovor Entwickler Angst haben sollten. Als Hilfestellung gibt es dabei sogar ein Modul in Angular 2 mit dem Namen „ngUpgrade“. Es enthält Importer, um Angular-2-Komponenten in Angular-1-Anwendungen zu laden und umgekehrt. Somit können Programmierer erste Gehversuche mit Angular 2 wagen und Komponenten, die in Angular 2 geschrieben sind, in ihrer AngularJS-Anwendung nutzen. Sie können auf der anderen Seite auch Komponenten, die in AngularJS geschrieben sind, mit in die Angular-2-Welt nehmen. Dies ist sehr sinnvoll, gerade wenn die Zeit für einen kompletten Rewrite zu Angular 2 fehlt.