Angular 2 即将发布最终版本之时,项目宣布了又一大改变点。项目中将不再使用把 TypeScript 编译到 JavaScript 和 Dart,Dart 的部分将成立专门的团队进行负责,分离出其自己的代码库。
根据 Angular 博客以及 Dart News 的报道,这次分离将有利于 Dart 开发者以及 JavaScript 开发者。
Dart 在 Google 的一些关键项目中扮演重要角色,Angular 团队努力提升以满足这些需求,以及广大的 JavaScript 社区的需求。最初,将 TypeScript 编译为 JavaScript 和 Dart 的想法是因为在 Angular 1 中 Dart 还并不是这么普及。将一个简单的语言转换为另外两个语言,可以满足开发者对于语言多样性的要求。在实践中,这会造成项目的一些问题,Naomi Black 说道:
尽管这个输入单一来源输出多语言的方式在理论上可以运作,但是在实际中新的内容很难加入到项目中来。即使是简单的变化也会在跨语言兼容性的问题下变得复杂起来,并且有些变化只能由理解整个编译过程,并熟悉两种目标语言的人来完成。
无论你使用哪种语言,模板语法不会改变。根据 Black 所述,API“在合适的地方”将是相同的。然而,这就代表着将来的功能不能在两种语言上自动实现。比如说,新的 Angular Dart 团队宣布他们将发布为 Angular 2 搭建的 Material Design 库,这已经在 Google 的产品中使用了。这仅仅用 Dart 写了,因此在 JavaScript 中不能使用。为 TypeScript 搭建的 Angular Material 库也只将在其中使用。
Dart 社区对这个举措的反应非常积极。Google 软件工程师 Kasper Lund评论说 Angular Dart 将变得更好:
Dart 能迅猛发展归功于它搭建了真正适合的、关键的应用程序。选择使用 Dart 和 Angular 开发应用程序的人,如果使用 Angular 2 for Dart 就可以获得更快更好的用户体验。
TypeScript 和 JavaScript 的开发者都将非常欢迎如果 Angular 2 能迅速发布。Hacker News 用户 zoechi评论说这个组合将放缓 Angular 的进展:
这个组合(TS+Dart)的推出会放慢 Angular 的开发,这个过程非常痛苦,因为开发人员需要掌握这两种语言。要实现将所有的内容都翻译为另外一个语言是非常困难的,并且这样做可能会导致两种语言各自的优势不能体现,两个版本的各自优势受到了限制。
用户可以在 GitHub 上获取最新发布的 Angular 2 for Dart 2.0.0-beta.18 版本。TypeScript/JavaScript 的版本目前更新到 2.0.0-rc.4 。
评论