Future prostheses Angular applications with ES6 characteristics


What is the recommended (if there is one) future-proof way to write controllers, services and directives in ES6 (using Traceur) so that the most of same code can be used with AngularJS 2.0. I realize that AngularJS 2.0 is still on the drawing board but if I were to start a new app today what style or conventions do I follow so migrating to 2.0 will hopefully be less painful.

Declaring a class and then passing a reference to that class into the controller or service is one point i see:

var app = angular.module('myApp', []);

class MainCtrl {

class MyService {

app.controller('MainCtrl', MainCtrl);
app.service('MyService', MyService);

Should the MyService class be moved to a separate file so that potentially in the future I could just export it and have it available to be injected?

What are some other things to keep in mind as I work on a new project using AngularJS (<= 1.3.x) and ES6?

Update After some digging around I wrote a series of blog posts talking about my findings on my blog

The angular team at ngEurope confirmed today that the $controllers, $scopes, $services and jqLite of 1.x will cease to exist in Angular 2.0. There will also be a brand new router, which they intend to backport to 1.3 in the coming months.

To prepare for migration they suggested just following the best practices/styles/conventions that have evolved in the community so far, and when 2.0 is ready (sometime next year), they'll work out the best way to migrate from there.

Also, they said that 1.3 will be fully supported for at least a year and a half after the release of 2.0.