英文原文: Is AngularJS ready for the enterprise?
AngularJS 的强大和简单使它成为了当今最流行的 JavaScript 框架——但是企业会采用它吗? 在当今的 Web 应用开发当中,AngularJS 是最热门的一个词。
可以肯定的是,AngularJS 有许多使之热门的特性。首先,这个 JavaScript 前端应用程序框架由 Google 开发和维护,而 Google 对 Web 也比较了解。其次,共同创建者 Miško Hevery 对 InfoWorld 说:“AngularJS 使得你在 HTML 里面写很多东西,HTML 驱动应用程序的组装,而不是在 JavaScript 里面写很多东西,然后有一堆模板来生成 UI。”
它如此强大,以及它所带来的简单,还有其它所有的一切,使得它成为了当今最流行的 Javascript 框架。
然而,它对于企业来说是否安全,这还有争议。企业习惯于购买拥有 10 年售后支持的软件,而 AngularJS 这种打破向后兼容的习惯,在未来的发展中会引起关注。
这一次,有理由相信,情况是不同的——即使在很久之后,媒体的炒作转移到下一个闪亮的框架,AngularJS 仍将被广泛使用。
Web 应用程序市场见证了领头羊的来和去,比如,根据 Google 搜索趋势显示,多年来 SproutCore 都是最热门的框架。但是它被 BackboneJS 给代替了,反过来,BackboneJS 又给 EmberJS 让路了。但是没有一个框架可以跟 AngularJS 相提并论。
Brat Tech 的工程师 Miško Hevery 和 Adam Abrons 在 2009 年开发 AngularJS,不久后就将它开源了。Miško Hevery 在加入 Google 以后,肩负起了后续开发任务。Google 的趋势图显示,到 2012 年 12 月,AngularJS 已经开始将自己从包中分离。
到 2015 年,至少在大众兴趣上面,AngularJS 完胜其它框架。从开发人员招聘网站 Indeed 得到的数据显示,在需要 AngularJS 经验的工作上,也呈现出同样的趋势。
似乎唯一有机会超过 AngularJS 的框架是 ReactJS,它由 Facebook 开发,正在与 Netflix 和其它大型 Web 玩家从事交易。
尽管 ReactJS 受到严重关切,开发者 Jeff Waugh 坚持认为,当其它框架开始跟随它时,“一切都变得越来越有 React 的味道”。
为什么呢?因为,正如系统自动化工程师 Jeff Schroeder 所说,引用当今“完全改变手机游戏”的本地应用的故事,来说明“React 就是更好”。
当 AngularJS 问世的时候,开发者就说到了本质问题。在 JavaScript 框架中,说每月一变都太宽泛了,它更像是每分钟一变,在炒作中流行,然后在快速的交替中衰退。
是否有理由相信,AngularJS 将会抵挡住 ReactJS(反过来,下一个强大的框架)?
相信 AngularJS 的一个理由是,尽管它有过愚蠢的举动,也没有影响它的流行。比如,它经常打破向后兼容性,强制它的追随者重新学习 AngularJS 开发。
关于 AngularJS 经常打破向后兼容性的趋势,它的批评者 Danny Tuppeny 哀叹道:
在我们当前的代码库中,部分已超过 10 年的历史,我们希望新的代码库也会持续这么久。似乎如果我们今天开始使用 AngularJS,我们将会被强制重写至少 3 到 4 年前的前端代码(前端可能是个大型代码库,还得确保应用能照常运行)。这听起来一点也没有吸引力…我们需要稳定和长期支持的框架,不是经常发明新的概念,然后打破原有的基础进行重写。
我认为,有必要打破原有的 Web 来跟上 Web 创新的步伐。比如手机 Web 开发者 Nene Bodonkor 做出假设:如果一些框架很自满,不跟上市场的需求,那么它们就是很容易被代替的。
并非所有人都同意。EmberJS 的创建者 Yehuda Katz 认为,强制所有人每隔几年都重写所有的东西,只会放慢我们的工作。
因此,EmberJS 和 Facebook 的 ReactJS 以及其它框架一样,尽最大努力向后兼容。这使得这些框架对企业更加友好。
然而,AngularJS 占主导地位。尽管对它的信徒造成严重创伤,它还是很流行。
那是否意味着,企业可以依赖它,基于它构建?作为一个企业,你能相信它吗?
Monsoon(一个手机和 Web 应用开发公司)的 CTO Michi Kono 认为,答案是肯定的。
While Kono 在一次采访时告诉我,他对于 AngularJS2.0 的新闻和向后兼容性是心烦意乱的,他专研了其中的底层技术决策,感觉 AngularJS 的核心开发人员所做的决策在技术层面上是有意义的,但是他们在交流上有些可怕。
此外,“因为在 Google 内部都使用这个框架,我只能假设支持企业和遗留版本只是一个巨大的用例。在接下来的几个月里,我确信,在重要的特性添加到 2.0 规范之后,我们会看到关于迁移的讨论”。
当我问及企业应该如何看待 AngularJS 时,Kono 很明确:AngularJS 做了很多事情来确保企业安全:
你不得不看看是什么使得(以及维持)Angular 比它的竞争者更加流行。这个框架不会强烈地寻求改变已有的约定,这使得学习它变得更简单。尽管一些人认为,这种灵活性会使得它比固执己见的框架(如 Ember)更加糟糕,那只是看到了 Angular 的缺点而已。
易于入门的特点使得更多的开发者来学习它,它和你使用的其它技术也能更好地适应。对于需要大规模招聘和开发的组织而言,这些理由极为重要。Angular 就是这样,可能会延续这种势头。
Kono 也指出,它使得大型组织从海量 AngularJS 开发者中进行招聘成为可能,除此之外,Angular 比其它一些框架更低一级,使得它学起来不像是框架,而是工具箱。这个工具箱方法使得它在广泛的使用中非常灵活,比如在网站上添加一个按钮,你可以同时使用其它任何框架。
最后,Kono 强烈认为“类型化”的 JavaScript 将会是 2015 年的一个巨大的趋势。Microsoft,Google 和 Facebook 都在努力以企业期待的方式升级 JavaScript。这些努力趋向于使得 JavaScript 看起来越来越像 Java(这是一种好方式)。AngularJS 2.0 将会用 Google 类型化的 JavaScript(AtScript)来编写,Kono 期待下一代 JavaScript 框架可以有大量供开发者使用的特性。
所有的这一切都是令人信服的理由,只为让你试一试 AngularJS,不管你的企业有多大。但是你应该坚持下去吗?
Rackspace 的副总裁 Van Lindberg 开玩笑:一想到“保持强大”和“JavaScript 框架”同时出现在一个句子中就是一个错误。也许他是正确的。
但是炒作和实际使用是有很大不同的,AngularJS 看上去两者都有。正如 Waugh 所指出的,在 Web 的爆发中,JavaScript 框架吸引了关注和很多用户,它们一直都是这样。
AngularJS 肯定符合“关注和很多用户”这个定义。
现在玩的把戏,正如 Adobe 的 Web 开发人员 Brian Leroux 所坚持的,就是为变化而优化你的框架,或者陷入重写而耽误了进度。
换句话说,现代企业需要能够接受 Web 上的快速变化,也表明需要接受像 AngularJS 这样的框架的快速变化,这样的框架使得 Web 应用开发更简单和强大。