AngularConnect 2016: Angular setzt auf semantische Versionierung
Auf der Angular-Entwicklerkonferenz nahmen führende Köpfe des Teams hinter dem JavaScript-Framework Stellung zu in letzter Zeit laut gewordener Kritik und versuchten den Plattformstatus ihres Projekts zu unterstreichen.
- Manfred Steyer
Die erste Keynote der Ende September 2016 in London tagenden AngularConnect 2016 stand ganz im Zeichen der kürzlich veröffentlichten finalen Version von Angular 2. Zu Beginn berichtete Jules Kremer, technische Programm-Managerin des Angular-2-Teams, dass zum Launch von Version 2 bereits über 620.000 Entwickler auf Angular 2 setzen. Das entspricht ungefähr der Hälfte jener Entwickler, die die seit Jahren etablierte Version 1 nutzen, wobei diese Gruppe im Laufe des letztens Jahres einen Zuwachs von 100.000 weiteren Entwicklern verzeichnen konnten. Google ermittelt diese Daten anhand wiederkehrender Zugriffe auf die Dokumentationen der beiden Produktversionen.
Semantic Versioning
Kremer adressierte zudem das Thema Versionisierung, für welches das Produktteam seit der Betaphase im Dezember 2015 immer wieder Kritik kassierte. Grund dafür waren Breaking Changes, die sogar noch nach Erscheinen des ersten Release Candidate im Frühjahr 2016 größere Ausmaße annahmen. Das Angular-Team möchte diese Kritik ernst nehmen und künftig auf Semantic Versioning setzen. Das bedeutet, dass beim Einführen von Breaking Changes die erste Stelle der Version zu erhöhen ist, während neue Features und Bugfixes zu Änderungen an der zweiten beziehungsweise dritten Stelle führen. Neue Hauptversionen sollen nun halbjährlich erscheinen, sodass die Community 2017 eine Version 3 sowie eine Version 4 zu Gesicht bekommen wird.
Zusätzlich wird das Team experimentelle API-Bestandteile explizit kennzeichnen. Dem stehen stabile Framework-Teile gegenüber, welche ebenfalls eine entsprechende Auszeichnung in der Dokumentation bekommen. Im Fall von Änderungen, die sich im Zuge weiterer Hauptversionen ergeben, kennzeichnet das Team stabile Bestandteile bei Bedarf als "deprecated" (= veraltet). Danach sollen diese noch für zwei Major Releases zur Verfügung stehen, bevor sie endgültig aus dem Framework verschwinden.
Performance, Apollo und GraphQL
Der Schöpfer von Angular, Miško Hevery, sprach darüber, dass sich eine hohe Performance nicht durch eine einzelne Maßnahme erreichen ließe. Deswegen adressiert Angular 2 dieses Thema mit verschiedenen Entwicklungen, darunter serverseitiges Rendering, Unterstützung für Web Worker aber auch dem neuen Template-Compiler. Dieser führt HTML-Templates in JavaScript-Code über und bietet somit die Grundlage für eine statische Codeanalyse. Darauf aufbauend lässt sich mit Tree-Shaking und Minification die Größe der auszuliefernden Artefakte drastisch minimieren. Der Template-Compiler hilft aber auch beim frühzeitigen Erkennen von Programmierfehlern und weist sogar auf nicht wohlgeformtes HTML hin. Daneben ermöglicht er die Generierung besserer Fehlermeldungen durch das Framework.
Uri Goldshtein aus dem Meteor-Team kam ebenfalls zu Wort und sprach über den Apollo-Client für Angular 2, der den einfachen Zugriff auf serverseitige Daten via GraphQL ermöglicht. Damit können Clients selbst definieren, welche Daten sie abrufen wollen und sogar verschachtelte Strukturen in einem Roundtrip abrufen. Zusätzlich enthält die Implementierung eine Prefetching-Option, damit Daten bei Bedarf ohne Verzögerung zur Verfügung stehen. (jul)