2008年Dojo发生了什么?
很多人都看过这个流行 AJAX 框架(Dojo、jQuery、YUI)的 Google 趋势图。
该图似乎清楚地表明,人们对 Dojo 的兴趣在 2008 年第二季度急剧下降,下降了 80%; jQuery 填补了这个空白,最终增长到 Dojo 大小的三倍多。
为什么? 2008 年第二季度发生的什么事削弱了人们对 Dojo 的兴趣?
(请注意,我对 Dojo vs. jQuery;即使您可以解释为什么一个比另一个更好,也很难理解为什么这一点在 2008 年 4 月突然变得清晰起来。)
Many of you have seen this graph of Google Trends of popular AJAX frameworks (Dojo, jQuery, YUI).
The graph seems to make it clear that interest in Dojo collapsed in the second quarter of 2008, falling by 80%; jQuery picked up the slack and ultimately grew to more than triple the size of Dojo.
Why? What happened in Q2 2008 that demolished interest in Dojo?
(Note that I'm not really interested in a comparison of Dojo vs. jQuery; even if you can explain why one is better than the other, it's hard to see why that suddenly became clear to the world in April 2008.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
免责声明:我是一名 Dojo 提交者,但这是我作为 JavaScript 内部人士的个人观点。
首先:该图绝对是完全错误的。仔细查看图表链接,并阅读“事件”。这是与 Dojo“相关”的事件列表:
“为 Ajax 声明 Dojo”——好的,它可能相关。
“IT Dojo:在 Windows Vista 启动时停止程序运行 [视频]”— 无关。
“IT Dojo:使用此注册表 hack 将“复制到”和“移动到”命令添加到 Windows XP 资源管理器”- 甚至不关闭。
“Dragon Dojo Martial Arts® 被命名为‘NASCAR® 官方小型企业,由 Office Depot® 提供’” — 不,又错过了。
“山景城的黑客道场激发了创意和修补” - 相距甚远。
为什么? Dojo 是一个主要在软件开发领域之外使用的通用术语,Yui(图表中的另一个 JavaScript 工具包 YUI)是非常受欢迎的日本歌手,只有 jQuery 是一个独特的术语。
那么图表显示了什么?不幸的是没有相关的。
嗯,似曾相识。是的,我已经说过一次了。因此,请允许我引用自己的话(添加少量注释,并更正链接):
现在回到你的问题。该图表是错误的 — 2008 年没有发生任何相关事件。一切都在 2007 年下半年完成:
虽然技术上的中断是合理的,但从心理上来说,这对用户来说是一个重大打击(即使在 2010 年,仍有主要的 Dojo 0.4 应用程序正在生产中)。
有些人开始学习 0.9/1.0 API,有些人决定迁移到其他东西 - 背叛的成本几乎与学习新 Dojo 的成本相同。当时的市场上全是老玩家,还有一个相对较新的人:jQuery。大多数 Dojo 前用户在尝试其他用户后选择 Dojo 是有原因的。因此,大多数叛逃者从 Dojo 转向 jQuery,而不是其他工具包,而这些工具包在他们一开始选择 Dojo 时是不可用的。
但这并不是唯一的原因。不知何故,人们喜欢将 Dojo 与 jQuery 进行比较。让我们比较一下他们的社区和社交方面。
jQuery 过去/现在更擅长营销 — 只需比较一个 John Resig 制作的博客文章数量与所有 Dojo 开发人员合计的博客文章数量,比较 John 在会议上发表演讲的次数与所有 Dojo 演讲合计的次数。事实上,Dojo 是由极客创建的,他们可能擅长技术,但不擅长营销。
社交功能也很重要,因为它们有助于发展社区。让我们看一下为这两个工具包提供一些随机代码。 Dojo 有一个适合奇怪项目的地方:DojoX。 jQuery 有一个类似的 jQuery 插件。任何人都可以为两者做出贡献,但对于 DojoX 来说,进入门槛要高得多,因为提交的内容将经过审查,如果不符合严格的标准,可能会被拒绝。一般来说,这需要花费很多时间,而在 jQuery 领域,任何人都可以随时以任何许可证提交任何代码作为插件。它让您更容易“属于”jQuery 社区。
在我个人看来,DojoX 流程产生了更好的技术成果:几乎任何随机的 DojoX 项目都比许多 jQuery 插件具有更好的质量。显然有很好支持的高质量 jQuery 插件,但这不是重点。关键是 jQuery 插件流程比 DojoX 流程更适合构建社区。
目标市场也不同。 jQuery 的目标是相对简单的事情:向常规网站添加一些 JavaScript 魔法,做一些“渐进增强”、“使用此片段”之类的事情,等等。 Dojo 以其模块化系统、构建/打包工具和 OO/AOP 规定吸引了 Web 应用程序人群。猜猜哪个市场人多。其含义之一很简单:Dojo 在 IT 领域得到广泛使用,但并未带来任何公众认可 ⇒ 即使来自此类系统开发人员的“二次关注”也比 Dojo 应有的程度要小。
另一个痛苦的事实是,Dojo 社区在 2007 年就失败了:文档混乱,博客文章很少,而且大多是关于高级程序员晦涩难懂的技术内容,而不是教程“看看做简单的事情是多么容易”。该论坛实际上已被垃圾邮件发送者关闭。 0.4/0.9 的中断损害了 Dojo 的搜索引擎可见性——寻找新东西的人们发现大部分都是 0.4 的东西,这对他们来说没有用。
所以你知道了:2008 年第二季度不是学习的时间地点。看看 2007 年下半年。看看为什么 jQuery 比 Dojo 或任何其他“竞争对手”更有吸引力。
但让我们回到“现在”。
根据我不科学的经验,Dojo 有大量新用户涌入——我看到更多的人使用 Dojo,而且我知道有更多的项目是从 Dojo 开始的。它开始于 2009 年中期。我认为原因是:
上面提到的许多问题已经修复或正在修复。
freenode 上的 #dojo 频道非常活跃,其他基于 Web 的资源比以往任何时候都更加相关。
作为一个主要是美国现象的 Dojo 终于开始走向国际。
现在要特别注意确保旧版 Dojo 版本的用户不会受到冷落。例如,为了响应最新的安全公告,Dojo 的所有已发布版本都进行了更新:从 0.4 到当前的 1.4。我确信,当 Dojo 将来进入 2.0 时,0.4/0.9 的分裂不会再次重演:进化而不是革命更容易被社会接受。
我相信 Dojo 技术官僚最终理解了他们的技术决策的社会影响,做出了改变,社区充满活力。
Dojo 很快就会在数字上“击败”jQuery 吗?虽然从技术上讲,Dojo 看起来像是 jQuery 的干净超集,而且两者都可以在同一个“渐进增强”市场中使用,但 Dojo 不太可能扰乱 jQuery。请参阅上面关于针对不同市场的内容,请记住,与其他工具包竞争甚至不是 Dojo 工作的极客的目标,他们专注于使 Dojo 在广泛的场景中更加有用,并致力于建立自己的社区。最终由用户根据自己的需求决定他们想要什么。
更新:我希望没有人会得出这样的结论:“Dojo 失败了,jQuery 恰好就在这里”。没有那样的事。 jQuery 有很多优点,尤其是在概念层面上。我们热爱 jQuery 并祝愿它一切顺利。它是比较我们构建其他工具包的努力的基准。
Disclaimer: I am a Dojo committer, but this is my personal view as a JavaScript insider.
First of all: the graph is absolutely and completely incorrect. Look at the chart link closely, and read "events". This is the list of events "related" to Dojo:
"Declaring Dojo for Ajax" — ok, it may be relevant.
"IT Dojo: Stop programs from running when Windows Vista starts [video]" — irrelevant.
"IT Dojo: Add Copy To and Move To commands to Windows XP Explorer with this registry hack" — not even close.
"Dragon Dojo Martial Arts® Named 'Official Small Business of NASCAR®, Courtesy of Office Depot®'" — nope, missed again.
"Hacker Dojo in Mountain View sparks ideas and tinkering" — nowhere near.
Why? Dojo is a generic term used mostly outside of software development area, Yui (as YUI — the other JavaScript toolkit in the chart) is an extremely popular Japanese singing celebrity, and only jQuery is a unique term.
So what does the graph show? Unfortunately nothing relevant.
Hmm, déjà vu. Yes, I already said it once. So allow me to quote myself (adding minor annotations, and correcting the link):
Now back to your question. The chart is wrong — nothing relevant happened in 2008. Everything was done in the second half of 2007:
While technically the break was justified, psychologically it was a major blow to users (there are major Dojo 0.4 applications in production even now in 2010).
Some people started learning 0.9/1.0 API, some decided to migrate to something else — the cost of defecting was almost the same as the cost of learning new Dojo. The market at that time had all old players and a relative newcomer: jQuery. Majority of former Dojo users chose Dojo for a reason after sampling others. So most defectors went from Dojo to jQuery rather than to other toolkits, which was not available when they settled on Dojo in the beginning.
But it is not the only reason. Somehow people like to compare Dojo to jQuery. Let's compare their communities and social aspects.
jQuery was/is much better at marketing — just compare how many blog posts were produced by one John Resig vs. blog posts of all Dojo developers taken together, compare how many times John gave a talk at conferences vs. all Dojo talks taken together. The truth is Dojo is made by geeks who may be good at tech, but not good at marketing.
Social features are important too because they help grow the community. Let's take a look at contributing some random code to both toolkits. Dojo has a place for odd projects: DojoX. jQuery has a somewhat equivalent jQuery Plugins. Anybody can contribute to both, but for DojoX the barrier of entry is much higher because a submission will be reviewed, and can be rejected if it doesn't meet strict criteria. In general it takes a lot of time, while in jQuery land anybody can submit any code as a plugin at any time and with any license. It makes it easier to "belong" to the jQuery community.
In my personal opinion the DojoX process produces better technical results: almost any random DojoX project is of better quality than many jQuery plugins. Obviously there are very well supported high quality jQuery plugins, but it is not the point. The point is that the jQuery Plugins process is better at building a community than the DojoX process.
Targeted markets are different too. jQuery targets relatively simple things: add some JavaScript magic to regular web sites, do some "progressive enhancement", "use this snippet" kind of things, and so on. Dojo with its modular system, the build/packaging tools, and OO/AOP provisions appeals to the web app crowd. Guess what market has more people. One of implications is simple: Dojo is used extensively in IT, which doesn't bring any public recognition ⇒ even the "secondary buzz" from developers of such systems is smaller than it should be for Dojo.
Another bitter truth is that the Dojo Community dropped the ball back in 2007: documentation was in disarray, blog posts were rare and mostly about obscure technical stuff for advanced programmers, rather than tutorials "see how easy it is to do simple things". The forum was practically shut down by spammers. The 0.4/0.9 break hurt Dojo's search engine visibility — people looking for new stuff found mostly 0.4 stuff, which was of no use for them.
So there you have it: Q2 2008 is the wrong place in time to study. Look at H2 2007. And see why jQuery has more mass appeal than Dojo or any other "competitor".
But let's go to "now".
In my unscientific experience Dojo has a sharp inflow of new users — I see much more people using Dojo, and I know of much more projects started with Dojo. It started somewhere in the middle of 2009. The reasons for that as I see it:
Many problems mentioned above are fixed or being fixed.
The #dojo channel on freenode is extremely vibrant, and other web-based resources are more relevant than ever.
Being a mostly American phenomenon Dojo finally started to go international.
Special care is taken now to ensure that users of older Dojo versions are not left in the cold. For example, reacting to the last security advisory, all published versions of Dojo were updated: from 0.4 to the current 1.4. I am sure that the 0.4/0.9 split is not going to be repeated again, when Dojo goes to 2.0 in the future: evolution rather than revolution is more socially acceptable.
I believe that Dojo technocrats finally understood social implications of their technical decisions, changes were made, the community is alive and well.
Is Dojo going to "beat" jQuery at numbers any time soon? While technically Dojo looks like a clean superset of jQuery and then some, and both can be used in the same "progressive enhancements" market, Dojo is unlikely to upset jQuery. See above about targeting different markets, and remember that fighting other toolkits is not even a goal for geeks, who work on Dojo, — they are focused on making Dojo even more useful in a broad spectrum of scenarios, and on building their own community. Ultimately it is up to users to make a decision on what they want based on their needs.
Update: I hope nobody will make a conclusion that "Dojo dropped the ball and jQuery just happened to be here". Nothing like that. jQuery had a lot going for it especially on the conceptual level. We love jQuery and wish it the best. It is the benchmark to compare our efforts in building other toolkits.
玩家厌倦了玩“Super Smash Bros Dojo:”
http:// /www.google.com/trends/correlate/search?e=dojo&t=weekly
Gamers got tired of playing "Super Smash Bros Dojo:"
http://www.google.com/trends/correlate/search?e=dojo&t=weekly
也许工作趋势讲述了真实的故事:
但 Dojo 工作的报酬似乎更高。
Maybe job trend tells the real story:
But Dojo jobs seem to be better paid.
我也是一个偶尔的 dojo 提交者,即使在趋势搜索中使用了澄清的“javascript”,你也会得到 jquery 领先:
http://www.google.com/trends?q=jquery,dojo+javascript,yui +javascript&ctab=0&geo=all&date=all&sort=0
也就是说,我相信它们服务于不同的受众。 Dojo(现在是 Google 的 Closure)是具有巨大深度和工具的“全强度”工具包,旨在供工程师用于 gmail 规模的应用程序。
JQuery 旨在供设计人员使用来为页面增添趣味。
您可以使用dojo 的选择器API 进行JQuery 风格的编码,就像您可以使用JQuery 工具进行更多“类似应用程序”的开发一样。
我的猜测是,设计师和网页的数量远多于工程师和网络应用程序的数量。
I'm also an occasional dojo committer, and even with a clarifying "javascript" in the trends search, you get jquery leading:
http://www.google.com/trends?q=jquery,dojo+javascript,yui+javascript&ctab=0&geo=all&date=all&sort=0
That said, I believe they serve different audiences. Dojo (and now Google's Closure) are "full-strength" toolkits with tremendous depth and tooling, designed to be used by engineers for gmail-scale applications.
JQuery is designed to be used by designers to spice up a page.
You can use dojo's selectors api to do JQuery-style coding, just as you can use JQuery facilities to do more "application-like" development.
My guess is that there are far more designers and web pages than there are engineers and web applications.
上面链接的 Mikey Mouse 图表有不同的范围。 这里没有 YTD 参数,这描绘了一个不同的视图:jQuery 仍然没有达到 Elvis 2007 年的顶峰。此外,与真正的通用术语相比,表明通用术语并没有“输”。猫占主导地位。 (http ://www.google.com/trends?q=jquery%2C+cat%2C+dojo%2C+elvis+presley%2C+mickey+mouse)
话虽如此,我确实喜欢 Dojo 和 jQuery。感谢两个项目团队让我们的余生变得更加轻松。 Eugene,感谢您借此机会提供有关 Dojo 项目的有用见解。 Gavin,我同意您对每种工具的目标受众的看法。不必只有一个。
The Mikey Mouse chart linked above has a different range. Here it is without the YTD parameter, which paints a different view: jQuery still has not reached Elvis' pinnacle back in 2007. Additionally, comparing with a real generic term shows generic terms do not "lose". Cat dominates. (http://www.google.com/trends?q=jquery%2C+cat%2C+dojo%2C+elvis+presley%2C+mickey+mouse)
That being said, I do love Dojo and jQuery. Thanks and gratitude are due to both project teams for making the rest of our lives so much easier. Eugene, thank you for taking this opportunity to provide useful insight into the Dojo project. Gavin, I agree with your perspective on the target audiences for each of the tools. There need not be just one.