一场关于YUI3/jQuery的精彩辩论(4)

作者:拔赤 来源:taobaoued 时间:2010-11-11 12:50:00 

将 YUI 从 Yahoo 剥离出来,才真正剥夺了它的战略优势。当 YUI 专注于这些高端项目和某些私有项目的时候,就没办法同时顾及到那些开源社区了。而在 Yahoo 内部,我们可以与 YUI 团队协作无间、齐力断金,所有 YUI 的用户也都从中获益良多。所有雅虎工程师的辛勤劳作在这里汇聚,日积月累的向 YUI 注入能量。

有些人说 Yahoo 不应当“操纵” YUI 的命运,这种论调我就更不能认同了。同样,是 Yahoo 让 YUI 闪光。任何一个开源项目都有一个核心的开发团队,他们的工作除了维护项目源码之外,还负责培养开发者、并为他们提供学习路线图。雅虎为YUI的开发者们支付薪水,这并不能改变项目的本质。我们可以看看在类似机制下亦然如此成功的Mozilla ,Mozilla 核心研发团队控制着 Firefox 的版本发布,Mozilla 给他们支付薪水,并不意味着他们的产品就应该有多糟糕。他们的产品 Firefox 是世界第二大浏览器,而正是这些甘于奉献的工程师对这个产品充满热情,他们的确渴望创造一个最好的产品。当你的本职工作就是在支持这个项目的时候,这是很容易做到的。谁说大公司无法支持开源项目?开源社区生态系统的形成,最终是由沟通、协作和不断超越的精神决定的,而不是所谓的“非盈利”。

再回过头来看 YUI,YUI 开发团队一直都在非常用心的开发第三方组件库,不错,这避免不了成长中的烦恼。时至今日 YUI 已经成果斐然,当然,在雅虎的之外,YUI 还未像 jQuery 那样广受关注,但 YUI 一直都在努力。去年的 YUI 年会 [注2]上,Matt Snider(曾供职于Mint.com)介绍了由他主导开发的一个相当完备的基于YUI2的组件库。我觉得这实在是棒极了,因为他的行为传达了一个信号,任何人只要有自己的想法,都可以向 YUI 开发团队靠拢,而且可以得到 YUI 团队的绝对支持,并把你的组件打包入 YUI。Matt 为他的组件库付出了很多工作,希望 YUI 可以寻觅到更多像他那样的开发者,愿意花时间为 YUI 贡献高质量的代码。同样,YUI Gallery 也一个相当不错的东西:他为开发者打开一扇大门,开发者可以轻松的将他们的组件发布到 Gallery 列表中,并可以将它们推送到 YAHOO 的 CDN 上[注3]。至今,Gallery 已经有227个组件,让非雅虎系的开发者都受益良多。

那么,YUI 是否可以改进社区的形式和贡献代码的模式呢?当然可以。YUI 是不是必须切断和 Yahoo 的联系,才能开始这些改进?不用,YUI3 是一个高质量的产品,在不断壮大的开源社区中有着强劲的生命力,如果硬要指责 YUI 团队的不称职的话,也只是他们忽视了市场营销的重要性,和缺乏行之有效的推广手段,而这两方面正是  jQuery 的强项,这也是 YUI 需要向 jQuery 学习的地方。

总之,YUI 不是 jQuery,任何试图将 YUI jQuery 化的企图都是不对的。那是不是意味着他们二者就是方枘圆凿、不容水火?绝对不是,jQuery 拥有着全球最大的开发者群体,没有哪个开源项目敢说自己不想要一个 jQuery 那样的开发者群体。YUI 也是其中之一,只是 YUI 没必要一定要变成像 jQuery 那样让全球开发者趋之若鹜,更没必要一脚把雅虎踹开,jQuery 仅仅是一个案例,它给了我们如何经营开源社区的一个参照样本,就像我常对我同事说的,问题不只有一种解决方案,真正的挑战性来自于选择适当的策略(而非照抄)来解决特定场景下的问题。如果真的沿着 jQuery 走过的脚印一步一步走下去,对 YUI 来说,这将是一个严重的决策性错误,毕竟,他们二者殊途不同归,各有各的优势,各自都有特定的开发者群体。YUI将会坚持走自己的道路,尽管这离不开孕育滋养它的紫色土壤。但我相信,YUI 一定能做到。

注1Quora.com 是一款基于问答机制的 SNS,有着活跃的用户群,它和之前的问答网站的最大区别就是 Auora 是基于实名制。

注2YUIConf 是 YUI 开发者大会简称,一年一次,今年将在11月8日举办,可通过 YUIblog 获得更多信息。

注3:我相信 zakas 的初衷是好的,但就我个人的经验来看,将组件发布到Gallery中的确很简单,但推送到 Yahoo CDN 上就有点费劲了,手续实在有点小麻烦

标签:jQuery,YUI3,javascript框架
0
投稿

猜你喜欢

  • 如何“看看”服务器上的那个文件还在不在?

    2009-11-02 20:17:00
  • SQL bool盲注和时间盲注详解

    2024-01-21 23:42:52
  • python3 shelve模块的详解

    2022-12-08 19:41:37
  • 在线HTML编辑器原理(eweb原理)

    2009-01-08 12:25:00
  • python傅里叶变换FFT绘制频谱图

    2023-06-30 09:44:07
  • Python 多线程处理任务实例

    2021-06-25 04:50:05
  • 在Ubuntu或Debian系统的服务器上卸载MySQL的方法

    2024-01-25 17:24:55
  • python中matplotlib调整图例位置的方法实例

    2023-09-11 08:52:13
  • python书籍信息爬虫实例

    2023-11-17 11:15:49
  • Python中使用PDB库调试程序

    2022-02-24 11:25:49
  • Perl中的10个操作日期和时间的CPAN模块介绍

    2023-07-27 10:04:41
  • 解决php-fpm.service not found问题的办法

    2023-11-21 14:26:21
  • Python seek()和tell()函数的具体使用

    2023-12-07 20:59:39
  • Python数据分析之 Pandas Dataframe修改和删除及查询操作

    2023-08-03 23:01:13
  • Pyside2中嵌入Matplotlib的绘图的实现

    2021-09-15 22:34:03
  • python求最大值,不使用内置函数的实现方法

    2021-02-06 09:13:12
  • python字符串替换的2种方法

    2022-12-27 20:59:24
  • Python实现方便使用的级联进度信息实例

    2021-04-22 12:31:18
  • Python使用正则表达式实现爬虫数据抽取

    2021-01-22 15:00:24
  • Python中的type与isinstance的区别详解

    2021-12-06 19:30:57
  • asp之家 网络编程 m.aspxhome.com