Which JavaScript framework should I build my search application in?

People are always asking me “What should I build my rich Search interface in?”, and right now it’s pretty easy, it’s either Angular or EmberJS if you want to go by market share. I lean towards EmberJS if you are building a single monolithic rich application and want all the power, and Angular if I think I am going to be pulling in other libraries, integrating into an existing application, and/or come from a jQuery background.

However Dojo was once the answer! Dojo Toolkit was one of the first MVC based JavaScript library, back in 2005. It established rapid dominance and interest between 2007 and 2009, as you can see from this chart from Google Trends:

However, as you can see post 2009, interest in Dojo fell off as newer contenders, primarily Angular and EmberJS, built on the strengths of Dojo and dealt with some of it’s weaknesses. This can be seen in this trend comparing Dojo with the two most popular contenders for MVC based Javascript frameworks: Angular and EmberJS.

Today, most Front End Engineers learn AngularJS or Ember, as those are the most widely deployed and general purpose frameworks.

Other frameworks, such as Dojo (still!) and Sencha Touch are much more specific in the use cases they target. Dojo for example is really applicable to only the most complex web applications, and Sencha Touch targets mobile device centric web applications. Therefore, they have many fewer developers who know them.

However, the good news is that Dojo, Angular, and EmberJS are all MVC based frameworks. Developers who understand the constructs behind Model, View, Controller, and how they fit together into a single framework are able to move between these frameworks much quicker, than say a developer who has only worked with a pure library like jQuery. And all good front end engineers expect to move among these frameworks, and learn new ones.

Indeed, right now there is a robust argument that Angular 1.0, which is the dominant solution, is about to lose its place to EmberJS due to the radical differences between AngularJS 1.0 and 2.0 putting off many front end developers. Which means that the title of “most popular framework” that Angular took from Dojo, may soon be taken by EmberJS!