Last week eight members of our team spent three days at ng-conf where we were a Platinum Sponsor this year. Nick and I gave a talk at the Hack Night on Wednesday which seems to have resonated with a lot of people. (See the slides.) The subsequent two days of the conference were very informative so in this blog I'm sharing the key take-aways and some of the resulting questions.
Angular 2 is Real
The key theme of the conference was that Angular 2 is happening. For real. Soon. The first day and the second day keynote talks both provided lots of good information.
You can download the alpha version from https://angular.io/ and play with it now, as some of us have already done. Unfortunately, there is no documentation at the moment. None at all. Hopefully this will be fixed soon.
The timing for the production-ready version is still unclear, but it was mentioned that Google will be transitioning some of their apps in May. So, now maybe the good time to start playing with Angular 2, or at least when some documentation becomes available. I predict the most brave developers switching over to it in the summer and the more conservative developers switching at the end of the year.
There was a lot of talk about transition. Anyone who is working on a new Angular app today will have to think about how to migrate to Angular 2 in the near future. Fortunately, a lot of newer modules that are being added to Angular 1.4 and 1.5 are really Angular 2 modules. This includes the new router, the new animation framework, and the new internationalization system. In case of the new router, the promise is that you'll be able to mix Angular 1.x and Angular 2 views.
The talk on writing future-oriented Angular 1.x apps provided some practical suggestions on how to proceed today to make the transition easier. We will write another blog post reviewing specific suggestions in this talk and some of our own ideas.
ES6 and Typescript
ES6 appeared prominently throughout the conference. In some cases, its use was highlighted as the language in which Angular 2 apps will be written (and the language in which Angular 1.x apps can be written today). One could also see ES6 syntax appearing in code samples even without getting mentioned. So, as far as the ng-conf community is concerned, ES6 is basically here.
The big remaining question, however, is what dialect of ES6 you should be using. Back at ng-europe the Angular team talked about using AtScript – their own superset of ES6 with type and annotation support. It was understood that AtScript would be compiled to ES6 using Traceur. At ng-conf, the Angular team announced that they've decided to switch to TypeScript, which has been extended to include key features of AtScript. The conference had two talks (one, two) dedicated specifically to TypeScript.
One positive thing about this announcement is that we get to avoid a new dialect of JavaScript. The second one is that the use of TypeScript is still optional: Angular 2 apps can still be written in plain ES6. The concerns include the fact that TypeScript 1.5 (which is yet to be released) only includes support for a subset of ES6 and omits some of its most exciting features such as generators. Angular teams might now have to decide between the purer and fuller version of ES6 with Traceur or the more Angular-focused TypeScript version.
Reacting to ReactJS
ReactJS was quite present at the conference, as was reactive programming. Some talks focused on explicit comparisons with React, and in other cases React wasn't mentioned, but it was clear that that this is what the speakers were thinking about. Functional-reactive programming was also a topic of a few talks (one, two
The take home message seemed to be that Angular 2 might be faster than ReactJS (e.g., see the end of this talk.) And it's certainly good to see that the Angular community is learning from React. At the same time, this conference did seem to provide a large degree of validation for ReactJS.
ng-wat
Finally, last but not least, Shai Reznik's side-splitting "ng-wat" talk was by far the single most memorable talk of the conference.
Did you attend ng-conf? What were the highlights of ng-conf for you? Let us know in the comments