David East gave a wonderful speech in San Francisco on how to migrate an Angular project to Angular 2. Or actually, how to develop an application in Angular to make it easier for a future migration to Angular 2. The video is definitely worth watching because it gives some high level overview of Angular 2 basic concepts. Moreover, you can see the whole development and the migration process devoting only 25 minutes of your time.
To migrate or not to migrate?
After watching the video, I got disappointed. Not because of wasting my time watching it. Oh no, definitely not. It was great! I just do not think I will ever migrate any of my big Angular projects to the new version. It simply seems too big effort. The project that we saw was very little and the migration was far from being automated or straight forward. I cannot imagine doing so for a real one that was an average size.
Luckily, this doubt is only theoretical at this point of time. Angular 2 has not been released yet so the decision can be deferred.
Use or wait?
Additionally, what kind of message is it sending? If I start a new project and consider using Angular, should I use the first release which will be difficult to migrate later from or wait for Angular 2? What if I cannot wait? Proceed with the first release and forget about the second one or ... use other framework (like BackBone) and forget about the Google's child?
Initially, I thought it was a wasted battle for Angular but it isn't necessarily I must say with hindsight. Why? Here it comes:
- It will take long time until Angular 2 becomes rife. The release date has not been officially announced. A year ago, Angular 2 was supposed to be based on ECMAScript 6 (ES6) which is still not supported by major browsers. It seems replaced with TypeScript this year which is widely supported but who knows how many times the plans will be changed. It is hard for me to say how many Angular modules will work with the second release of the framework. This is an important factor in the decision making process.
- A migration to Angular 2 is not mandatory. The first release is good enough to stick to it for some time (a few years?). Yeah, support will end at some point but is it really necessary? Public support for Java 7 ended this year but there are still systems that are built on Java 5 even though Java migration is not that difficult in a general case.
- It will take time until web developers with Angular 2 will be available to hire. It is much easier to find someone with experience with the first release. You do not want to start a project on a technology that is totally new to the whole team.
Additionally, I have made a small research and companies start new projects with the first release of Angular so giving up on Angular till the second release is not happening. That might make sense, especially that you might rewrite a frontend from other reasons before the first release of the Angular becomes obsolete.