Yahoo(雅虎)刚刚宣布今后将不再继续开发开源JavaScript工具库Yahoo User Interface(YUI)。Yahoo Presentation的技术工程总监Julien Lecomte在Yahoo的官方博客Yahoo Engineering Tumblr blog上宣布了这一决定:“我们做出了一个艰难的决定,从现在起停止YUI新功能的开发,将研发力量集中在新的技术愿景上”。
\\从Julien的博文中可以看出该决定的端倪,Yahoo公司之所以做出这个决定是由于近期JavaScript语言的激烈变革,以及越来越多的开发者对大型JavaScript库的忌惮并失去了兴趣所导致。也正因为这个原因,YUI的大多数核心模块的活跃维护者已是凤毛麟角,开发者反馈的问题和功能需求也越来越少。
\\2005年,Thomas Sha开发了YUI并得到了Yahoo联合创始人Jerry Yang的赞助。2006年2月YUI首次对外发布并由Yahoo的工程师组建了一支核心团队开始维护YUI。2009年9月,Yahoo发布了YUI的最新的一个主要版本YUI3。从YUI到YUI3是一个由库到框架的演变过程,YUI3吸取了YUI2开发的经验教训,对当时还是开发库级别的YUI从底层进行了重构。在这期间,YUI有了长远的发展和改进,比如为检索DOM元素增加了CSS选择器引擎、更加强调模块的粒度、根据开发需求可选择加载最小功能单位的模块、各种语法的改变使开发变得更加方便和快捷等。
\\YUI的发展过程中也开创了很多深受JavaScript开发者喜爱的技术,比如功能模块化、动态加载,它们使模块化开发和依赖管理变得更加容易。然而在过去的几年中,由于Node.js的出现使JavaScript的开发环境和开发趋势发生了革命性的变化,正如Julien在博文中所说:
\\\\\我们都清楚的知道IT产业正朝着新方向发展。众所周知,在过去几年中,Web平台已经发生了革命性的变化,JavaScript史无前例的流行。Node.js的出现让JavaScript可以在服务器端使用,为创建同构单页应用(isomorphic single page application)打开了大门。
\
正如Julien所描述的那样,JavaScript的生态环境随着这些新技术的诞生发生了翻天覆地的变化:
\\\\\新型包管理器(npm、bower)有效地刺激了第三方生态系统的发展,开源、单一目的的工具相辅相成,遵循着UNIX哲学理念,构建出极其复杂的开发用例。新型构建工具(Grunt和它的插件生态系统、Broccoli、Gulp)使一个个小模块很容易就可以组装成大型的集成应用程序。新型应用框架(Backbone、React、Ember、Polymer、Angular等)帮助我们用新的方式构建可扩展、可维护的Web应用程序。新型测试工具(Mocha、Casper、Karma等)降低了持续保证产出物高可靠、高稳定性的技术难度。标准机构(W3C、Ecma)将近几年已被大家熟知的大型JacaScript框架内容进行标准化,使它们可以原生的兼容大量的设备。最后,浏览器厂商现在也都致力于不断改进其Web浏览器,逐渐向标准看齐。为了让用户在不知情或者只需进行极简操作的情况下就能使用支持最新标准的浏览器,所以出现了“自动更新浏览器(evergreen web browsers)”,就是可以在启动阶段就能在后台自动更新的浏览器,由此我们可以展望今后用户使用的浏览器差异会越来越小。
\
因为JavaScript语言的敏捷特征,Julien在博文中这样说到:
\\\\\在这种形势下,Web技术发展的结果是:YUI之类的大型JavaScript库已逐渐失去社区的青睐。许多开发者如今把大型JavaScript库视作束缚其发展的围墙。
\
虽然Yahoo停止了YUI新功能的开发,但还是会持续修复一些严重的缺陷:
\\\\\此后YUI的新版本会越来越少,周期也会变长,并且只会修复对Yahoo利益有重大影响的针对性补丁。
\
感谢邵思华对本文的审校。
\\给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。