Choosing a JavaScript framework

To some developers, the large number of JavaScript frameworks available means they have many fun hours ahead of them while trying them all out before deciding which one to use on a regular basis.

Others don't want to do that but pick the first one they hear of or the first one that is required by a javaScript tutorial they come across and stick with that. Then there are those who mix and match and end up with three or four different frameworks in the same project.

What I'm getting at is that once you've decided that using a JavaScript framework is appropriate for the task you're faced with, it can be hard to choose the one that is right for you. And to make things worse, what is right for you may not be right for your co-workers.

Brian Reindel shares his thoughts on this in How to choose a JavaScript framework, and lists some questions that may help you decide:

  • What are your project requirements?
  • Does the framework support A-Grade browsers?
  • Is there a core team of developers?
  • How mature is the framework?
  • How often are updates publicly released?
  • How friendly is the documentation?
  • Is there an active community?
  • Are benchmark tests performed regularly?
  • How extensible is the framework?
  • Do you like the API style?

Those are all questions worth asking. Their importance varies, of course, but finding the answers to them will help you make a decision. Four questions I'd like to add are:

  • How much will the end user need to download if I use this framework?
  • Do the other people working on this project feel comfortable with this framework?
  • Does the framework force me to change the way I write my HTML?
  • Will I need to invalidate my HTML to make full use of the framework?

If you've read my article Learn JavaScript before tasting the library kool-aid you may think that I am completely opposed to using JavaScript frameworks or libraries, but I am not. I use them when they will help me achieve a better end result.

I'm not particularly attached to one specific framework, however. So far I have ended up using YUI, jQuery, and DOM Assistant, mainly depending on the project requirements and what suits other members of the project team.

Of those three, DOM Assistant is by far the easiest for me to use. It is also the smallest and the one with the least number of features (though a number of very useful additions are in the works). Maybe there is a connection, I don't know.

What about you? Do you use other criteria than the ones mentioned here when choosing a JavaScript library? What do you normally end up using?

Posted on December 10, 2007 in JavaScript