Designed for the future

AngularJS blickt mit Version 2 in die Zukunft
Kommentare

Das Team des JavaScript-Frameworks AngularJS hat begonnen, sich Gedanken über Version 2 zu machen – und lässt die Community daran teilhaben. Die Vorgaben sind dabei eindeutig: AngularJS wird für die Zukunft designed, es führt kein Weg zurück. Wir werfen dem Team bei seinem Blick in die Zukunft einen Blick über die Schulter.

AngularJS ist das Framework über das man spricht, wenn es darum geht, JavaScript in einem Atemzug mit Enterprise-Applikationen zu nennen. Das mag zum einen an seiner Architektur liegen, die für viele genau das abbildet, was sie erwarten, um Applikationen zu entwickeln, die Enterprise-Ansprüchen gerecht werden sollen. Zum anderen kann es natürlich auch nicht schaden, in Google einen mächtigen Partner an seiner Seite zu wissen.

Jetzt also hat das Team mit den Arbeiten an Angular 2.0 begonnen. Und gleich von Beginn an lässt man diejenigen daran teilhaben, die das Framework am Ende auch nutzen wollen.

As we’re starting into the implementation of Angular 2.0, we thought we should put pen to paper and give you some insight into how we’re thinking about the design and why we’re making the changes we are.  We’re sharing it with you now so you can help make the right choices.

Um auch wirklich in allen Bereichen mitreden zu können, hat das Team alle Designdokumente auf Google Drive zusammengefasst und zum Download zur Verfügung gestellt.

Die Zukunft kann kommen

Das Hauptaugenmerk von Angular 2.0 liegt auf mobilen Apps, denn dort sieht das Team den meisten Handlungsbedarf. Darüber hinaus sollen Data-Binding und erweiterbares HTML ebenso eine Rolle spielen wie das Thema Testbarkeit, der zweite Schwerpunkt des Teams.

Auch wenn es um die Zielplattformen geht, erkennt man deutlich, dass man im Team bereit ist, alte Zöpfe abzuschneiden. So sollen neben aktuellen Chrome-, Firefox-, Opera- und Safari-Versionen auch der Internet Explorer bedient werden – ab Version 11, wohlgemerkt. Im Bereich Mobile geht man einen ähnlichen Weg: iOS soll ab Version 6 unterstützt werden, Windows Phone 8+ und Firefox Mobile – und somit auch Firefox OS – stehen ebenfalls auf der Liste.

Wie ernst es dem Team ist, merkt man vor allem daran, dass Angular 2 komplett in ECMAScript 6 entwickelt wird. Zwar wird der Code mit Traceur gegen ES5 kompiliert, um zu gewährleisten, dass das Framework überall eingesetzt werden kann, aber die Ausrichtung zeigt dennoch klar in die Zukunft.

Die Einfachheit des Seins

War AngularJS bisher eher für eine nicht gerade unkomplizierte Lernkurve bekannt, will das Team nun verstärkt daran arbeiten, viele Dinge in Zukunft einfacher zu gestalten.

Zum einen betrifft das natürlich das Templating und die Direktiven. So soll das API für die Direktiven vereinfacht werden, neue Komponenten-Frameworks sollen integriert werden und IDEs sollen künftig in der Lage sein, Templates zu analysieren und zu validieren.

Ein weiterer Punkt betrifft das Thema Dependency Injection – noch immer eines der großen Alleinstellungsmerkmale von AngularJS:

We’ll see a less complex DI by eliminating the config phase, simplifying the syntax by using declarative-style ES6+ annotations instead of imperative.  We’ll enjoy greater capabilities by integrating DI with module loading through ES6 Modules.  We’ll also see the ability to lazily-load parts of our JS through child injectors.

Was diesen Teil der Zukunft betrifft, hat man bereits jetzt selbst die Möglichkeit, einen blick in die Kristallkugel zu werfen. Im Repository findet man unter angular/di.js bereits einen ziemlich fertigen Ausblick auf das, was sich in Angular 2.0 finden wird.

Buttery-smooth app buttery-butterness is around the corner

Mobile hat Entwicklern vor allem zwei Sachen gelehrt: Style und Performance ist das, was Nutzer haben wollen. Für ersteres ist der Designer zuständige, bei letzterem steht das AngularJS-Team Gewehr bei Fuß.

So ist eine der Stärken von AngularJS der Change-Detection-Mechanismus, der im Hintergrund seine Arbeit verrichtet. Dieser Bereich soll noch einmal einen deutlichen Performance-Schub erhalten – und den verspricht sich das Team vor allem durch die Methode Object.observe(), die hoffentlich bald in die Browser Einzug finden wird.

Noch mehr Performance möchte man herauskitzeln, indem man das komplette Framework modular aufbauen will. Das Ziel sei es, dass am Ende der größte Teil des Frameworks optional sei, durch andere Teile ersetzt werden oder sogar in anderen Frameworks eingesetzt werden könne.

Angular++

Während das bis jetzt schon sehr ansprechend klang, hat man noch wesentlich mehr vor, vor allem wenn es darum geht, mit Daten auf dem Server oder lokalen Daten im Browser zu arbeiten:

Mobile apps need to work in an “always offline” mode with syn to the server. RESTful services need more than we’ve provided in $resource.  Some data can be updated in batches while some needs a continuous streaming model. In this new persistence layer, we’ll provide clean structure for these cases and take much more out of the boilerplate currently necessary.

Auch im Router soll es Änderungen geben, die unter anderem in den mobilen Kosmos ausstrahlen werden. Generell wird das Team hier Hand anlegen müssen, da der ursprüngliche Angular-Router nach und nach um Features erweitert wurde, da mit dem Wachstum der Popularität des Frameworks immer neue Use Cases hinzukamen, die man anfangs nicht bedacht hatte. Aktuell betrachtet man die Situation ziemlich nüchtern: „However, the underlying design is ill-suited to be extended much further.“

Zu guter Letzt will man sich noch auf die Touch-Animationen konzentrieren, da viele Teile des Frameworks, wie beispielsweise das Carousel oder das Infinite Scrolling, jeweils einen eigenen Core besitzen und teilweise andere Herangehensweisen verfolgen. All das soll vereinheitlicht und um die Option, native Scroll-Events zu verwenden, erweitert werden – was sich letzten Endes auch positiv auf die Performance auswirkt.

Fragen über Fragen

So weit, so gut. Jetzt liegt es an der Community, das Team mit Wünschen und Anregungen zu überschütten. Denn bis zu einem Release von Angular 2.0 dürfte noch einige Zeit vergehen. Im Moment kann das Team selbst noch nicht abschätzen, wann es so weit sein wird; und das, obwohl bereits einige enorme Fortschritte erzielt wurden.

So sei man sich beispielsweise sicher, dass man im Bereich der Dependency injections oder mit Zone.js einen zumindest beinahe fertigen Stand erreicht habe. Aktuell sei man auf alle Fälle dabei, die Module nach den Design-Docs zu prototypen. Von Antworten auf die Fragen nach einem Release Date oder zu einer Migration von Angular 1.x auf 2.0 sei man aber noch weit entfernt.

Das Team hat sich viel vorgenommen für Angular 2.0. Es wird spannend sein zu beobachten, welche Fortschritte sich erzielen lassen, von welchen Zielen man Abstand nehmen wird und welche neuen, bisher noch nicht bedachten, Features Einzug finden werden.

Aufmacherbild: motion fast in the underground tunnel von Shutterstock / Urheberrecht: chungking

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -