AngularJS准备好投入企业应用了吗?
英文原文: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,它由 非死book 开发,正在与 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 和 非死book 的 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 和 非死book 都在努力以企业期待的方式升级 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 应用开发更简单和强大。