Angular 2 Split, Dart Codebase Separated

| by David Iffland Follow 4 Followers on Jul 22, 2016. Estimated reading time: 2 minutes |

Just as Angular 2 nears its final release, the project has announced one more twist in the road. Instead of using TypeScript to compile to JavaScript and Dart, the Dart portion will be spun out into its own codebase with its own team.

As announced on both the Angular Blog and on Dart News, the split is intended to benefit both Dart developers and JavaScript developers.

Dart is used internally at Google for critical projects and the Angular team struggled to keep up with those demands and the demands of the much larger JavaScript community. Initially the idea of compiling TypeScript to both JavaScript and Dart was done because Dart on Angular 1 wasn't getting the attention it needed. By having a single language transpile to two others, the thinking went, they could make sure both flavors were complete. In practice, this caused both projects to suffer, said Naomi Black:

While this single-source multi-language approach worked in theory, in practice it made it much harder for new contributors to add to the project. Even simple changes could quickly become complicated by cross-language compatibility concerns, and many changes could only be made by someone who understood the entire compilation process and both language targets.

The template syntax won't change regardless of which flavor you're using. According to Black, the API will be the same "where appropriate". This means, however, that future features may not be automatically available on both. For example, the new Angular Dart team announced that they will release their Material Design library for Angular 2 which they already use in production inside Google. This is written solely in Dart and therefore is not available to those using JavaScript. The Angular Material library for TypeScript continues on its own course.

The Dart community response has been very positive. Google software engineer Kasper Lund commented that Angular Dart will be even better now:

Dart thrives because it is being used to build truly critical apps. Making Angular 2 for Dart faster and better strengthens the case for choosing the Dart and Angular combination for such apps even further.

TypeScript and JavaScript developers seem to welcome the news if it means getting Angular 2 done sooner. Hacker News user zoechi commented that the combination slowed Angular's progress:

The combined development (TS+Dart) was slowing Angular development down and contribution was painful because one needed knowledge of both languages. There are notable downsides for the split development but I fully understand the decision. Implementing everything in a way that it can be translated into the other language was a real pain and limited both versions to a common denominator which prevented both versions to benefit from the advantages of their respective language.

The newly freed Angular 2 for Dart is available on GitHub and is currently at version 2.0.0-beta.18. The TypeScript/JavaScript version is now at 2.0.0-rc.4.

Rate this Article

Adoption Stage

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

What’s New in Angular 2? by Kathreen Riya

Angular 2 is an innovative and dynamic update from the previous version of the framework.

Using advanced Routing Solutions. The router in Angular 2 has been reworked to be simple, yet extensible. Also the latest version of Angular 2 has addressed this issue and will allow AngularJS developers to add new directives or controllers.

Read more here,

Future of Angular Material on JavaScript? by gopi w

Interesting. What does this mean for the community using Angular Material on JavaScript? It's currently built on Angular 1.x; does it mean that future Angular Material libraries, enhancements and bug-fixes would be available only for Dart or TypeScript ?

Dart Codebase Separated by Andrew Mezoni

Dart is outcast?
What is Dart value without Angular?

Re: Dart Codebase Separated by Lars Rye Jeppesen

Fuchsia :)

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

4 Discuss