Ein Insider gibt Ein- und Ausblicke

AngularJS 2.0: die ganze Story
Kommentare

Als Ende Oktober auf der ng-europe ein Ausblick auf AngularJS 2.0 gewährt wurde, war die Überraschung – und die Verunsicherung – in der Entwicklergemeinde groß. Warum würde das Team alles über den Haufen werfen und quasi von vorne beginnen wollen? Sollte nicht das Release von AngularJS 1.3 der Maßstab für JavaScript-Entwickler sein? Das Team allerdings hat gute Gründe für seine Entscheidungen, wie Rob Eisenberg, Mitglied des Core-Teams hinter Angular 2.0, in aller Ausführlichkeit darlegt.

Denn nichts ist schlimmer, als eine verunsicherte Community, die nicht so recht weiß, wie ihr geschieht. Daher fasst Eisenberg die seiner Meinung nach wichtigsten Features und Bereiche der aktuellen AngularJS-2.0-Entwicklung zusammen, gibt Einblicke in die Motivation und die Prozesse dahinter und geizt dabei auch nicht mit seiner persönlichen Meinung und Einschätzung.

AngularJS – der Stand der Dinge

Mit dem Release von AngularJS 1.3 gab sich das Team selbstbewusst – nichts anderes als der Maßstab für JavaScript-Entwickler sollte das Framework sein. Wenn es nach Eisenberg geht, ist es das Framework, das man aktuell nutzen möchte. Es sei stabil, sicher, biete zahllose Features und eine hervorragende Performance. Und so schnell werde man die aktuellen Versionen nicht fallen lassen.

Aktuell existierten ca. 1.600 Apps, die auf AngularJS 1.2 oder 1.3 basieren. Auf der ng-europe gab Brad Green, Core-Team-Mitglied von AngularJS in einer Q&A-Session bekannt, dass Entwickler sich nicht sorgen müssten – Google habe großes Interesse daran, das Framework am Leben zu erhalten. Man könne noch mindestens eineinhalb bis zwei Jahre nach dem Release von AngularJS 2.0 mit einem Support für die aktuellen Versionen rechnen; eigens dafür gäbe es ein starkes Team, dass Vollzeit nur an der Weiterentwicklung des 1.3er-Zweigs des Frameworks arbeite.

Doch auch die beklagte Migrationsstrategie – oder besser das Fehlen von Migrationspfaden – sei noch nicht gänzlich vom Tisch:

There also haven’t been any plans made available regarding a migration story for those who wish to move their Angular 1.x apps over to 2.0 when it becomes available. I think we can and should do work in this area. If that’s important to you as well, please make your voice heard.

AngularJS 2.0 – die Motivation

Wenn AngularJS in seiner aktuellen Form so wichtig ist, stellt sich natürlich die Frage, warum man nun einen Neustart wagen möchte. Die Gründe dafür sind vielfältig.

So war Angular, als es vor knapp fünf Jahren veröffentlicht wurde, nicht dafür gedacht, Entwickler bei ihrer Arbeit zu unterstützen. Vielmehr richtete sich das Framework an Designer, die schnell und unkompliziert HTML-Formulare entwickeln wollten.

Da Entwickler aber ein eigenes Völkchen sind, wurde AngularJS schnell „zweckentfremdet“. Das Team hinter AngularJS 1.x habe zwar hervorragende Arbeit geleistet, das Framework immer weiter seinen neuen Anforderungen anzupassen, dennoch gäbe es noch viele Überbleibsel aus der alten Zeit, die zu Lasten der Performance gingen.

Diese Performance-„Probleme“ beträfen auch den Bereich Mobile. Zwar sei es ohne weiteres möglich, Applikationen für mobile Devices zu entwickeln, jedoch sei AngularJS nicht mit diesem Hintergrund entwickelt worden. Hier, so Eisenberg, sieht das Team viel Potenzial für Verbesserungen.

Ein weiterer Grund für den Neuanfang seien die Veränderungen im Web. So sei es vor fünf Jahren beispielsweise nahezu unmöglich gewesen, eine Cross-Browser-Website ohne jQuery vernünftig auf die Reihe zu bekommen. Das habe sich jedoch geändert; und bald schon komme ECMAScript 6, das für noch mehr Vereinheitlichung sorgen werde. Seiner Meinung nach schneller, als manch einer denken würde:

In a few months the ES6 spec will be finalized. It’s not unreasonable to think that we’ll see a browser in 2015 that implements the full spec. Today’s browsers already support some of these features and are working on implementations of the rest right now. This means browser support for things like modules, classes, lambdas, generators, etc. These features fundamentally transform the JavaScript programming experience.

Natürlich seien da noch Webstandards wie beispielsweise Web Components, das Template-Element oder HTML Imports. Sie alle würden dazu beitragen, dass AngularJS, das – seiner Meinung nach – nicht wirklich das am leichtesten zu erlernende Framework sei, einen Neustart benötige.

AngularJS 2.0 – Features und Design

Da somit die Motivation geklärt wäre, kümmert sich Eisenberg im Rest des Artikels sehr ausführlich um einige neue Features und Design-Entscheidungen.

Den Anfang macht dabei AtScript, ein auf Traceur aufbauendes ECMAScript-6-Superset von Google mit einer TypeScript-artigen Syntax, das in AngularJS 2.0 für das Schreiben von Applikationen verwendet wird.

Darüber hinaus beschäftigt Eisenberg sich mit den in AngularJS enthaltenen Dependency-Injection-Features, die ebenfalls einigen Änderungen unterzogen werden – wie zum Beispiel der Wegfall von $scope oder die Child Injectors, einem neuen und sehr mächtigen Feature.

Die weiteren Neuerungen, mit denen er sich beschäftigt, befinden sich in den Bereichen Templating & Databinding sowie im Router. Während die Neuerungen im Router, für die er sich übrigens selbst verantwortlich zeigt, ebenfalls in AngularJS 1.3 einfließen werden, sind vor allem seine Ausführungen zum Templating und Databinding mehr als interessant. Schon die Tatsache, dass seine persönlichen Anmerkungen dazu den Umfang zweier langer Blogposts haben, zeigt, wie viel Konfliktpotenzial dieser Bereich in Zukunft bieten wird. Vor allem, da die Frage nach dem Bidirektionalen Data Binding auch im Team selbst noch nicht final geklärt ist.

Tiefe Einblicke

Vor ein paar Tagen haben wir über die 5 Bad Ideas of AngularJS berichtet. Einige der dort aufgeführten Gründe gegen Angular werden in der Tat in AngularJS 2.0 beseitigt sein.

Allerdings ist bereits die Länge des Artikels von Rob Eisenberg bezeichnend. Zahlreiche Änderungen warten auf Entwickler. So bemerkt er bereits sehr früh:

Even though I haven’t got to the details yet, you can probably tell that AngularJS 2.0 is quite different from 1.x. One might ask if it’s even the same framework. I think that’s a good question.

All About Angular 2.0 ist weder leichte Lektüre noch mal eben in ein paar Minuten zu lesen. Wer sich jedoch intensiv mit den Neuerungen und den Problemen, vor denen das Team selbst steht, beschäftigen möchte, sollte sich einen familienfreien Nachmittag lang Zeit nehmen. Mehr und ausführlichere Informationen wird man so schnell nicht erhalten.

Aufmacherbild: holding future in sky von Shutterstock / Urheberrecht: 2jenn

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -