BT

AngularJS 2.0 Details Emerge

by David Iffland on Oct 27, 2014 |

Last week at the ng-europe conference in Paris, the Angular team gave attendees details about the upcoming AngularJS 2.0 release. It's a significant departure from version 1.X with no migration path and made with a new language, AtScript, in mind.

Developers familiar with the Angular 1.X will encounter a drastically different looking framework and will need to learn a new architecture. In a session devoted to the changes in version 2.0, Igor Minar and Tobias Bosch introduced the new template syntax:

<input type="text" [value]="firstName">
<button (click)="addPerson()">Add</button>

This new syntax binds data to element properties, not attributes. This allows the syntax:

<input type="checkbox" [checked]="someProperty">

This looks like standard HTML, but the checkbox input element doesn't expose a checked attribute. The new template engine binds to element properties even if they'e not attributes exposed by the DOM.

This new template syntax is a relatively small change compared to the upheaval caused by the new architecture. Attendee Michael Bromley described some of these breaking changes. Version 2.0 eliminates the following 1.X concepts:

  • Controllers
  • Directive Definition Object
  • $scope
  • angular.module
  • jqLite

Referring to the eliminiation of jqLite, Igor said:

In 2.0 we are not going to use DOM wrappers inside of the framework at all. We're just going to deal with the raw DOM. The DOM has improved quite a bit since we started, so we don’t actually need a compatibility layer that will help us with the different browsers as much as we used to need it. So we can just build with raw DOM, but if you want to use jQuery, if you find jQuery useful in your components, that’s totally fine.

One of the goals for 2.0 is to improve the development experience for Angular apps. In his Day 2 Keynote, Miško Hevery, the father of AngularJS, described how the creation of AtScript, would accomplish this goal.

AtScript is a superset of TypeScript, the language created by Microsoft. TypeScript adds types to JavaScript code and AtScript extends this idea further by adding annotations and introspection.

An annotation allows a developer to "express the intent" of a particular class. So, rather than writing boilerplate code to create a custom directive, developers can just create a class and tell AngularJS, "This is a directive". The introspection capabilities enable the framework to look at the type information at runtime.

But, AtScript is optional. There is no rule to develop Angular 2.0 apps in AtScript. Miško said that, because of the existing community and libraries already written in JavaScript, it was "a very important goal that you don’t have to use it". Since AtScript compiles to EcmaScript 5 (ES5), developers can write Angular 2.0 directly.

In a Q & A session, developers asked how long Angular 1.3 would be supported. Brad Green replied:

A reasonable expectation would be that after we release 2.0 final that something like 1.5 - 2 years beyond that we would support 1.3 for things like bug fixes and security patches.

The team also indicated that there is no migration path from Angular 1.X to 2.0, though they left the door open for this possibility. There is no release date set, but the consensus is that version 2.0 will be finalized late 2015.

Brad Green also mentioned that Angular 2.0 will only support "evergreen browsers", but didn't specify. He mentioned that the team was "trying to run to where the ball is going to be rather than where it is today"

Developers had mixed feelings about the massive change. On Hacker News, user zak_mc_kracken said:

Even though this is still called "Angular", this new version has barely any resemblance with the previous one, it's really a totally new framework. It's a bit sad to think that all this knowledge I have of Angular 1 is now obsolete but I'm excited to dive into this new framework. If it's half [as] revolutionary as Angular 1 was, it's going to be a pretty interesting time.

Videos from the ng-europe conference were available on YouTube, but were soon removed. According to the ng-europe Twitter account they "will post all videos during the next two weeks". Until then, developers can review the Angular 2.0 Design Docs and check out the GitHub repository.

Rate this Article

Relevance
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Nice write up! by Ben Hayat

Thank you for providing this info and write up.
..Ben

Videos now available by seldon richard

check youtube ng-europe: www.youtube.com/watch?v=gNmWybAyBHI

No, thanks by Alexander Semenov

May be better just let it die? Am I along?

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

3 Discuss
General Feedback
Bugs
Advertising
Editorial
Marketing
InfoQ.com and all content copyright © 2006-2016 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT