What happened to Dojo in 2008?

Dan Fabulich picture Dan Fabulich · Mar 15, 2010 · Viewed 10.7k times · Source

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.)

Answer

Eugene Lazutkin picture Eugene Lazutkin · Mar 16, 2010

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:

  1. "Declaring Dojo for Ajax" — ok, it may be relevant.

  2. "IT Dojo: Stop programs from running when Windows Vista starts [video]" — irrelevant.

  3. "IT Dojo: Add Copy To and Move To commands to Windows XP Explorer with this registry hack" — not even close.

  4. "Dragon Dojo Martial Arts® Named 'Official Small Business of NASCAR®, Courtesy of Office Depot®'" — nope, missed again.

  5. "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):

Regarding Google Trends. Out of 5 libraries in question [jquery, mootols, prototype, yui, and dojo] only two (jquery and mootools) have a fighting chance to be remotely relevant in the survey mostly due to their unique names. The rest use either a generic name (prototype and dojo) or alias to something else (yui => Yui, extremely popular Japanese singer/songwriter/actress). So if you want to explain sudden spikes try to Google for news stories of that time to see if ups and downs can be explained without superficial means.

Here is a link to another "scientific" study that proves without any doubt that jQuery is more popular than Marilyn Monroe, Elvis Presley, and even overtook Mickey Mouse recently: Google Trends: jquery, mootools, marilyn monroe, elvis presley, mickey mouse.

Now back to your question. The chart is wrong — nothing relevant happened in 2008. Everything was done in the second half of 2007:

  • 8/20/2007 — Dojo 0.9 is announced. This was the major break with the previous version: Dojo 0.4. Immediately your existing knowledge of Dojo was decimated by 70% or more.
  • 11/5/2007 — Dojo 1.0 is announced. This release made Dojo 0.4 psychologically ancient.

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:

  1. Many problems mentioned above are fixed or being fixed.

  2. The #dojo channel on freenode is extremely vibrant, and other web-based resources are more relevant than ever.

  3. 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.