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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论