Web应用程序框架领域的创新浪潮可能让大多数开发人员感到沮丧,但也是必要的。JavaScript越来越难以跟上JavaScript圈子的步伐。虽然ReactJS抢占了前阵子的头条,但没有一个JavaScript框架能够长期保持其领导地位。有人声称这是一件好事,允许相互竞争的框架在创新上超越彼此,但创新的步伐对于广大开发人员来说太快了。怎样才能被公认为长期赢家?谁将赢得网络?老实说:涉及的内容很多。正如EmberJS的负责人TomDale曾经对我说的那样:“记住Web蛋糕是多么大的一块。.NET用于Windows,Cocoa用于iOS/Mac,赢得Web就是赢得世界。”在这种情况下,没有一个框架能在很大程度上主宰Web,这有点奇怪。反正没有盒子能长期称霸。毕竟,虽然新的编程语言来来去去,但Java、C++、C#长期屹立不倒,始终处于或接近编程语言排行榜的前列,Redmonk网站的分析显示,见:http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/。Web应用程序框架并非如此。快速浏览一下谷歌趋势(GoogleTrends,http://www.google.com/trends/explore#q=EmberJS%2C%20BackboneJS%2C%20Sproutcore&cmpt=q&tz=)可以看出,JavaScript的流行度经历了起起落落的阶段(见图A)。图A:显示JavaScript受欢迎程度的Google趋势。Sproutcore由CharlesJolley构思,由Apple和后来的Strobe(被Facebook收购)开发。当BackboneJS取而代之时,Sproutcore最终沉寂了下来——得到了LinkedIn等公司的支持。与此同时,一些Sproutcore的开发者离开了Strobe去开发EmberJS,它正在逐渐取代BackboneJS。当然,当我们包括AngularJS(Google的JavaScript语言)时,一切都相形见绌,它在互联网搜索和雇主需求方面都很迷人(见图B)。图B:AngularJS的兴起。也许这很好。AngularJS实际上可能是有史以来最好的框架!至少,在下一个酷炫闪亮的框架出现之前。我们可以放慢速度吗?以ReactJS为例。由Facebook开发的ReactJS在年初宣布支持原生应用程序时受到了很多媒体的关注。这意味着ReactNative框架使开发人员能够使用React和JavaScript轻松构建原生应用程序。这是一个很好的概念,即使不是一个新概念。毕竟,多年来其他框架都提供了类似的功能,这自然会引出一个问题:我们真的需要ReactJS吗?Netflix认为我们需要它。这家技术先驱在其开发者博客上宣称:“我们采用React的决定受到许多因素的影响,尤其是这三个因素:1)启动速度,2)运行时性能,以及3)模块化。”Netflix认为,ReactJS提供了一种极好的方式来减少网络请求(改善启动时间)和简化UI渲染(改善运行时性能)等好处。也许Netflix是对的。但是Netflix为什么不能使用AngularJS、EmberJS或者其他框架来达到同样的目的呢?#p#不创新就走了PhoneGap的核心开发人员之一BrianLeroux认为,当前来自JavaScript框架的创新最终将“集成到Web平台本身”迫使这些框架继续创新,以保持领先地位。随着竞争框架失去创新动力,市场将迎来更好的框架。从某种意义上说,我们选择了一些从一开始就不断创新的框架。(Instructure博客上的一位开发人员认为EmberJS已经赢了,因为“它总是与Ember进行比较,无论框架是什么。”)AngularJS显然也是一个冠军竞争者,也许是最强大的竞争者。ReactJS呢?令人沮丧的是,我们在web编程领域没有遇到任何停滞,这可能充分反映了我们在web上还有多少工作要做。AngularJS最近因为在其2.0版本中没有提供向后兼容性而受到抨击,我认为这对创新来说可能是一件好事。为什么?因为,作为Leroux的密友,我们甚至还没有触及Web创新可以,也许应该是什么样子的皮毛。当我们想出一种更好的Web编程方法时,我们正在打破常规。但并非所有人都这么认为。EmberJS的联合创始人YehudaKatz认为,“减缓创新步伐的唯一方法是迫使每个人每隔几年重写一次代码”。所以EmberJS正在努力保证最大程度的向后兼容性。如上所述,AngularJS不会这样做,至少目前不会。但在我看来,这些都是必不可少的“减速带”。在可预见的未来,我们应该会看到JavaScript框架不断改进。有些框架会死,有些会赢。但是,尽管这可能会让开发人员感到沮丧,但这最终是一件好事,因为这意味着Web获胜。http://www.techrepublic.com/article/web-application-frameworks-innovate-or-die/
