Angular 和 AngularJS 是两个独立的产品:
官方的名称用法指导在 PRESS KIT - Angular Docs。
Marketing/Branding 部分其实只是单纯的设定,不需要逻辑,所以记住就好。
最初 Google 提供了 AngularJS 和 AngularDart 两个框架(或者叫一个框架的两个实现?),分别用于 JavaScript 和 Dart 的 Web 开发。(关于 AngularJS 的名称问题在 AngularJS - FAQ 中有明确阐述,整个官网中都使用的是 AngularJS 这个正式名称)
Google 曾经计划基于 Web Components 技术重写 AngularJS 1.x,从而推出全新的 AngularJS 2.0,不过这个想法只在早期文档中存在,从未真正实现过。早在开发过程中,这个设计就已经被完全推翻掉了,新的框架也已经逐步不再使用 AngularJS 这个 Brand。
在一段时间内,谷歌曾经试图默许使用 Angular 这个新 Brand 来包含已有的 AngularJS Brand(即 AngularJS 1.x 也可以被成为 Angular 1.x,而 2+ 仅称为 Angular。注意是包含而非取代,即原框架正式名称始终为 AngularJS),来实现无缝过度。事实上民间很早就使用 Angular 作为 AngularJS 的简称了,所以这个做法影响并不大,毕竟不是所有人都天天在看官方博客。
随着名称混淆带来的各种问题,之后谷歌开始重新强调使用框架正式名称,即
Angular 的核心目标就是替代 AngularJS,Google 官方也多次表示,只有等 Angular 的用户数量全面超过 AngularJS 之后才会停止对 AngularJS 的维护。
最初设计 Dart,是 Google 的一帮程序员出于对 JavaScript 的不满,决定自己搞一个新语言用来替换 JavaScript 的,所以刚开始 Dart 也就是用来作为浏览器脚本运行在浏览器中的。Google 的这帮程序员万万没想到,看似并无大用的 JavaScript 居然因为 NodeJS 而焕发了第二春。于是 Dart 被这股浪潮遮掩了它的光芒,但是谷歌作为它的亲爸爸仍旧对它非常关照,在 Google 的未来操作系统 Fuchsia 中,Dart 被指定为官方的开发语言。
参考文献