The Angular Connect conference is almost at an end, so I thought I’d write up some of the great things I’ve learned over the past two days.
It’s been an awesome conference. Different to last year’s ng-europe in many ways, but just as good. Here are the biggest take-aways:
- ES2015 is also here in Angular2 land in a big way. Not too surprising this.
- AngularJS has grown up. Version 2.0 fixes many of the problems that 1.0 suffers from, and rewriting it as the team has done makes much more sense. It’s more modular, its templating syntax is much cleaner, 43 of the core directives have been removed as they’re simply not needed, its faster and more scalable out of the box.
- Software Engineering has at last made its way into the front-end. SOLID, OO, encapsulation, functional, even functional reactive programming, were all terms used liberally in many presentations. Not only Angular has grown up, but front-end development too.
- Angular 2.0 looks stable enough to experiment with. It’s still in Alpha, and the Batarangle team (working on a new version of the Batarang Angular debugging tool) warned that the core is still changing, but the templating syntax is pretty much nailed down, and there’s a new angular-cli scaffolding tool that lets you setup an Angular2 app quickly from the command line.
- The world’s going functional crazy! Angular2 uses the observable implementation from RxJS and is fully compatible with immutable.js, both functionally-based libraries.
- Front-end build tools are now officially so fragmented that the Angular2 team can’t decide which ones to use, let alone which to recommend. Our build pain is shared by the Angular team, which in some ways is a relief, but in other ways, leads me to think there’s no escape from build hell!
- Angular2 routing is much better than in Angular 1.x. The routes can now be defined declaratively, with a new [router-link] attribute applied to the anchor element in place of href, making it much clearer exactly what a link does or where it goes.
- Everything’s changed. Angular2 has new templating syntax, new debugging tools, uses TypeScript and ES6, uses Observables over promises, is more functional – it’s even got a completely new API for testing.
- Speaking to people in the break-out sessions, nobody quite knows how they’re going to implement Angular 2.0. This is no surprise – no-one’e even used Angular2 yet! But even the ng-upgrade service, letting up upgrade from 1.5 to 2.0, is still an unknown.
- Angular Material 1.0 RC is now out. Angular Material 2 has only just started, but hopefully it’ll be ready in time for ng-conf next year.
- Angular Material 2 will include a gesture library that’ll replace ng-touch.
- The word transclusion is being renamed to projection, apparently in line with Web Component standards, but probably just because!
- The new Angular router should be usable in Angular 1.x within the next week.
- Angular2 is going component crazy. Gone are the controllers, directives and everything separated – instead, we have a nice clean component to work with. Makes so much more sense, and stops the smearing of code across multiple entities.
- There’s a lot of Visual Studio being used by the Angular team. This surprises me, as they’d previously seemed closer to the JetBrains team and its WebStorm IDE. But perhaps it’s part of Angular’s wider adoption of Microsoft’s technologies, such as TypeScript and RxJS.
- Tooling, ecosystem and documentation are the next things required for Angular2.0. It’s like the start of Angular 1 all over again!
- Angular2 uses immutable data internally, so using immmutable data in your own apps will make the more performant. Also easier to reason about (but that’s a feature of immutable functions in general)
- If you’re used to working with immutable data, then go with it. If not, you don’t have to.
- Angular2 stresses that you don’t do custom DOM manipulation in your components – that’s one way to avoid anti-patterns.
- The angular-cli isn’t quite ready for use yet…like everything else!
- Docs will be written in TypeScript, ES5 and Dart…but not ES6. Wait, what?! They’ve chosen Dart over ES6?! That makes no sense. Supporting 4 languages is a challenge, and 3 only a slightly smaller challenge. But still, of the four languages to not provide documentation for, ES6 – the brand new shiny, standardised, common future of all browsers – is not the one to omit.
- This year’s conference was different from last year’s ng-europe. Whereas last year, everything was about Angular 1.x, this year was very much Angular 2.0, almost to the exclusion of Angular 1.x. Although exciting to see what was coming, this made some of the talks frustrating, as I’ve not even played with Angular2 yet much less worked with it, and so the talks were more theoretical than practical. I’d have liked to have seen more on ng-upgrade as well.
I’ll keep updating this page over the next couple of days, so check back often, or follow me on Twitter to see when it’s updated.