share
Stack OverflowWhich JavaScript framework (jQuery vs Dojo vs ... )?
[+578] [27] cletus
[2008-12-27 03:02:59]
[ javascript jquery extjs dojo yui ]
[ http://stackoverflow.com/questions/394601/which-javascript-framework-jquery-vs-dojo-vs ] [DELETED]

There are a few JavaScript frameworks/toolsets out there, such as:

It certainly seems that jQuery is ascendant in terms of mindshare at the moment. For example, Microsoft (ASP.NET MVC) and Nokia will use it [9]. I also found this performance comparison of Dojo, jQuery, MooTools and Prototype [10] (Edit: Updated Comparison [11]), which looks highly favourable to Dojo and jQuery.

Now my previous experience with JavaScript has been the old school HTML + JavaScript most of us have done and RIA [12] frameworks like Google Web Toolkit [13] ("GWT") and Ext-GWT [14], which were a fairly low-stress entry into the Ajax world for someone from a Java background, such as myself.

But, after all this, I find myself leaning towards the more PHP + Ajax type solution, which just seems that much more lightweight.

So I've been looking into jQuery and I really like its use of commands, the use of fluent interfaces and method chaining [15], its cross-browser CSS selector superset, the fact that it's lightweight and extensible, the brevity of the syntax, unobtrusive JavaScript [16] and the plug-in framework. Now obviously many of these aren't unique to jQuery but on the basis that some things are greater than their sum of parts, it just seems that it all fits together and works well.

So jQuery seems to have a lot going for it and it looks to the frontrunner for what I choose to concentrate on. Is there anything else I should be aware of or any particular reasons not to choose it or to choose something else?

EDIT: I just wanted to add this trend comparison of JavaScript frameworks [17].

trend comparison of Javascript frameworks??? This link compares Coldfuxion and ASP.NET - those aren't JavaScript frameworks. Are you sure you wanted to add that exact link? - Rene Saarsoo
Oops, wrong link. Fixed. - cletus
(2) The comparison link you had was comparing "jquery" to literally "+dojo", "+yui", etc. The + was not necessary and was skewing the results. I fixed this. - Paolo Bergantino
what happened with dojo? there was a big hump, and then it flattened out again. - Ken Liu
There is an inevitable issue with using Google Trends for backing up statements with "data": stackoverflow.com/questions/2450696/… - Kyle Hayes
(23) What I really hate about jQuery is that the code is a terrible maze and very difficult to read. So I'm always scared of one potential bug it might happen to my application caused by jQuery and not being able to look into jQuery code to quickly (couple of hours) patch it for at least myself and my customers. - Marco Demaio
Gartner generated a report comparing Ajax frameworks. DevelopRIA has a decent review of the Gartner report developria.com/2011/01/the-gartner-ria-report-in.html - David Negron
Oh, no. Run from Gartner. They only look at your stuff if you hand them bags of money. Maybe they fairly compare the people that handed them bags of money but what about the ones that didn't? - Sarel Botha
(1) I think there are too types of libraries here. lightweight-small-site libs like jquery, mootools, ... and monolithic-all-in-one-but-modular libs like dojo, closure, ... - andho
Nice comparison link. Interesting to see that YUI is the most popular in Japan... - Tomas
To compare the popularity of the frameworks, you might better use actual measurements: w3techs.com/technologies/overview/javascript_library/all - Sam
(4) That only covers use on public web-sites which of course is going to massively overcount jquery usage because most usage of dojo and ext js is behind firewalls on internal company apps - Michael Mullany
Jquery is the easiest to get started, but I feel like I'm throwing out the ability to reuse any of the code. After writing a few extensions and getting pretty familiar with it, I'm unsatisfied and will move to MooTools soon. It's great to start with though. - Brandon
Bad question. A better question would be, which framework is best for which purpose - Toskan
I really wish that these topics wouldn't be closed. It was constructive to me - I'm faced with the same choice and need to find out as much info as I can. - rein
[+529] [2008-12-27 09:29:42] Pim Jager [ACCEPTED]

jQuery

  • Fast
  • Well documented
  • Easy to use
  • Chaining
  • Unlike Prototype [1] it doesn't extend an object if you didn't specifically ask for it (try looping an array in Prototype)
  • easy-to-use Ajax (I love the $.ajaxSetup() function)
  • Nice event handlers
  • CSS selectors
  • filtering your selection
  • did I mention chaining?
  • Small (only 30 KB)
  • Nice little built-in effects.
  • Plugins
[1] http://en.wikipedia.org/wiki/Prototype_JavaScript_Framework

(190) We use jQuery here on StackOverflow - and if you run into a tricky problem, its creator might help out! stackoverflow.com/users/6524/john-resig - Jarrod Dixon
(1) jQuery is great, and I usually use it, but it's just "best" for every situation. In some situations, prototype is nicer. - TM.
If it's good enough for SO then it's good enough for me also. (I'm sucking up, if you want to give me +20000 rep then I'll be fine with it). - Lucas
(8) jQuery all the way. Fast. Lightweight. Easy. Powerful. It has it all. - Jeff Davis
(40) +29! Now that's fanboyism! - alamar
(9) +1 just for their documentation alone. I wish it had more UI control (there is a Calendar, Tab Control, dialog, etc), but nothing like what YUI has. But YUI doesn't do all the things that JQuery does either -- and there are plenty of plugins. - Chris Brandsma
(58) It is a masterstroke to use CSS selectors. This means that if you already know CSS, you have a good headstart. If you don't know CSS and start using jQuery, you automatically learn CSS. Not to mention that CSS selectors make code very concise. - SolutionYogi
(2) One gotcha in jQuery is it depends on how you want/need to use it. While jQuery-UI is nice, it does have a couple drawbacks. Using it in a full-window application is much more complex than say extjs. There are a few grid implementations each with their own drawbacks, and creating iframe based containers is cumbersome. That said, I've written a few jQuery extensions, and really like it a lot. I would suggest extjs if you need a full application-like UI, otherwise jQuery. - Tracker1
I disagree. Prototype is architect-ed with better syntax and build for scalability - blog.thinkrelevance.com/2009/1/12/… - jonycheung
Yay, made it >100 upvotes =D - Pim Jager
(2) @JONYC - Even some of the prototype authors regret the architecture because of the conflicts it causes (you never know what the spec adds next), Prototype 2.0 won't extend the DOM. This is from Kagnax on the Prototype core team: perfectionkills.com/whats-wrong-with-extending-the-dom - Nick Craver
(4) try looping an array in Prototype - You're looping it wrong! for..in isn't even called looping, it is enumerating over the keys. - Chetan Sastry
Depends on the project. For example as Tracker1 says, it may not be feasible for application-like things that work on full canvases; or there can be libraries better for pure object-oriented coding. But for web in general, it's gold. - Halil Özgür
JQuery is the 'official' JS library of Drupal since version 6.x (Drupal ships with it). Drupal is the CMS used by whitehouse.org, economist.com, fastcompany.com, timeoutnewyork.com, etc. - amateur barista
(3) stackoverflow really let me down on this one. tried JQ, but lack of good integrated widgets really slowed us down. wish we had gone with dojo six months ago... - Neil McGuigan
(1) In my opinion a good answer to the better question "which library / framework would you use for what purpose?" e.g. if you want to build something like this dojotoolkit.org/widgets then you should chose dojo or YUI. When you want to make small - big changes to existing html, go with jQuery. - Toskan
@el chief what widgets are you looking for exactly? there are hundreds of add ons available, most notably JQuery UI... - dqhendricks
(1) yes, there are many plugins from many sources. but they aren't integrated. it can take a long time to learn the many different properties & methods, and to make them look the same. ended up going with extjs. sencha has similar properties and methods and use the same theme. there is NO good combobox for jquery (not same as autocomplete), the grids are ok, but weak on grouping/hierarchical support. sencha's layout manager is light-years ahead of the jquery's. sencha's ext designer also massively improves productivity. i do miss jquery's fullcalendar, it's excellent, and jqui's themes are easier - Neil McGuigan
JQuery is the leader in Website enrichment with fast download and lots of tutorials/ help available. - Ravia
1
[+266] [2008-12-27 04:33:01] Eugene Lazutkin

Being a Dojo developer I would recommend Dojo. While my choice is not surprising, I became a Dojo developer because I found following things, which are done better than in other JavaScript frameworks:

  • OOP (and other paradigms) done right.
  • Widget infrastructure done right.
  • Modules done right with all necessary goodies:
    • Lazy loading of modules dynamically.
    • Possibility to extract only necessary modules and build a custom one-file profile.
    • Asynchronous loading of modules if desired.
    • Simple integration with CDNs for heavy-duty web applications.
  • Sheer breadth of available modules in DojoX including graphics, charting, grids, and so on.
  • Ability to use it in non-browser environments.
  • Attention to details in widgets:
    • support for i18n (including LTR and RTL languages),
    • support for l10n (including standard date, currency, number formatting),
    • provisions for people with special needs (automatic high-contrast mode, keyboard-only support, and so on) — useful for regular users too, and mandatory for most government contracts.
  • Smart people in the community (last but not least) — as much as I love hand-holding for novices, at some point every developer becomes "seasoned" and needs much more than that.

If all you want is to write one-liners and add simple progressive enhancements to existing web applications, you can do it with pretty much any framework, or even with a pure JavaScript. But as soon as your web application becomes bigger or more complex, good packaging, good support for your favorite methodologies, good building blocks, and the ability to make your own building blocks become more and more important. That's why I settled on Dojo, and never looked back.


(43) Dojo is an excellent base for building your own code. jQuery is okay for doing some "standard" things, but when you need very customized UI widgets or other magic, Dojo's functionality is much easier to extend. It also seems a lot of Dojo's codebase is much higher quality than some components in other libraries. - Jani Hartikainen
(2) Right on the money. For us, developers, Dojo is above all the programmer's framework. We are striving to provide a solid foundation for custom development, and we work hard on improving Dojo's code as much as we can. I hope it shows. - Eugene Lazutkin
(47) The problem with Dojo is the documentation. It's not unified (dojotoolkit, dojocampus, sitepen), dojotookit.org is painfully slow, the forum is deprecated at the moment, and personally, I've had poor luck on the irc channel.... - sprugman
(7) Working with different toolkits I found that Dojo's docs are not that bad. For example, I have to dive in jQuery's source code on daily basis. Official docs are on dojocampus.org --- no need to go elsewhere. IRC is always about catching right people online. ;-) Sitepen doesn't provide Dojo docs, but it has good articles on Dojo, and you can find more if you google around. The forum was deprecated for a reason --- there is very much alive dojo-interest@mail.dojotoolkit.org mailing list. If you prefer a web interface, use Nabble or Gmane to read/write. Try it. - Eugene Lazutkin
(7) I recently subscribed to the mailing list, and I have to agree (despite my statement above), that it seems to be a vibrant and helpful community. - sprugman
(1) While I may not be convinced about components outside of the code, I definitely agree that Dojo is a superior framework for building large scale applications; so much so that frameworks such as jQuery, Prototype and the others (possibly excluding ExtJs) seem like jokes. I never use jQuery for more than progressive enhancements. - Justin Johnson
(3) i love dojo's OOP approach but i laughed outloud at the bit about the community... the dojo forums are painfully slow and no one responds to questions that you have there. they recommend you then go on irc just to get your question answered, yet noone responds on irc either. if you're ok with being on your own when something goes wrong than maybe dojo is fine, otherwise stick to something that has much better support like jquery. - Justin
(1) @Justin - what dojo forums? use the mailing lists (this option was available forever), and (oh irony!) you can use Stack Overflow. ;-) - Eugene Lazutkin
(2) I've used both jQuery and Dojo extensively, and I love jQuery much more, because it's core functionality is far more intuitive. - Mark Rogers
(3) @Mark Rogers: Fair enough. Working with jQuery even more than I work with Dojo I have a different opinion. Care to elaborate, e.g., write to me directly and I will share your views with the core Dojo developers? If you want, I can share your opinion anonymously. Don't forget to mention what version of jq and dojo you compared. - Eugene Lazutkin
(2) -1 for Dojo. While I'm sure it is one awesome library, it claims support for IE but IE support has always been, and still is, broken. Just pull up the widgets demos, for example, in IE and give everything a manual poke. - stimpy77
If widgets are all you need, there are many choices. I like the fundamentals, which work in Dojo as advertised. Having said that I have several major apps in production running on IE without much problems. With widgets. Care to file specific bugs rather than complain unspecifically? I can say about virtually any software product "I tried X on Windows/IE/whatever, and it is very buggy" --- substitute X with any software development product of your choice. - Eugene Lazutkin
(1) @Eugene Lazutkin: For what it's worth, I just opened the dojo widgets demo in IE and some of them don't work and a couple screw up horribly. You should probably have a look. - TheCodeMonk
@TheCodeMonk - is it possible to give a link to the demo? Even better would be to file a ticket for bugs. Or tell me what release you tested and what browsers you use, and I forward it to the Dijit team leader. Trust me: we do take such problems seriously. - Eugene Lazutkin
@Eugene Lazutkin dojotoolkit.org/widgets ... The basic widgets and the text area all have a long bar across them, can't even see them. - TheCodeMonk
@TheCodeMonk thank you! I forwarded it to the Dijit team, and hopefully it'll be resolved soon. - Eugene Lazutkin
(1) @TheCodeMonk From the Dijit team lead: "I tried it and it looks fine to me". Please file a bug with us and don't forget to include a screenshot and what browser did you use to repro that. - Eugene Lazutkin
Even I am on jQuery side I am not blaming other javascript framework since they have their own strength but designing framework like this is is not easy and the developer must be super brilliant. So it seems to be unacceptable to have null/undefined error on the widget demo. Not to mention about bug report but for new comers/beginner to view the demo + documentation is crucial. It should be tested properly before releasing/publishing a demo. The widget loading also slow. I will prefer using Ext Js + jQuery for UI while supporting jQuery UI to be more matured. - CallMeLaNN
@CallMeLaNN I would love to fix a bug, but I cannot reproduce it. Documentation is not visible? Widget demo doesn't work in some browser? Please file a bug with details, otherwise it sounds hollow. - Eugene Lazutkin
Goto dojotoolkit.org/widgets, click "Popups and Alerts" accordion and link "slow loading modal dialog" or "modal dialog w/action bar". Don't you see dijit.byId("xxx") is undefined? Not a bug but they should not miss it when embed the widgets in a page. - CallMeLaNN
In IE8 the sharp edge of tooltip < not aligned properly. popup TimeTextBox have inconsistence border or size. Slider have slow response with mouse drag. the rest i can't remember where the null/undefined error. - CallMeLaNN
(1) @CallMeLaNN thank you for details! It turned out that designers used some snapshot of Dojo, which had these problems, but the trunk doesn't have them. In any case, we are updating Dojo to the latest release. Again, thank you for attention to details! - Eugene Lazutkin
+1 for the "I tried it and it looks fine to me" comment above. Made me chuckle. - Kzqai
(1) "done right" not a good a answer. - NimChimpsky
Can you defend the "OOP" bullet point? I feel Javascript does well with prototypes and composition, and OOP is foreign and unnecessary. - Tobu
@NimChimpsky and Toby It is my subjective opinion, and I don't try to portray it as anything else. I actually stated that in the first paragraph. Obviously you (like everybody else) are entitled to have your very own opinion whatever it is. IMHO, OOP is a big topic, which is not suitable to cover in the SO format. I plan to publish several posts specifically on the topic of OOP in JS, so stay tune to get your answers, or fuel your rage. :-) - Eugene Lazutkin
@Toby Yes, I can. No, I don't want to argue about feelings. :-) - Eugene Lazutkin
I just started Dojo and find the new documentation easy to follow (but too simple), because when you want to glue something more complex, add pattern and modularity to your code (for complex application) you are in the complete mist and need to have super powers (be super brilliant) to find your way out. I have a lot frustration with this framework, my patience has its limits. When I can do the same thing in JQuery in about 75% less time... - fneron
2
[+46] [2008-12-27 03:37:54] Glenn
  • YUI for a complete, professional looking, enterprise oriented widget toolkit.
  • Prototype if you are using http://script.aculo.us/ or like the Ruby way of doing things.
  • jQuery has gotten very popular and is most probably your best bet if you code in ASP.NET
  • You can't go wrong with either Dojo or MooTools

You can easily switch JQuery into Prototype if you are using Rails - Toby Hede
(4) I would personally switch the other way around (prototype to jQuery) - Pim Jager
YUI is worth a try if you're looking for something different (I believe LinkedIn use it). - Ross
What do you mean by 'enterprise oriented'? - SolutionYogi
(2) Widgets that are enterprise friendly. You know, more about tree views, calendar controls, data grids, and charts than about animating sprites. Since my original post, Yahoo has been enhancing their YUI to be more consumer friendly too. There is now a file uploader, image cropper, and an image carousel widget that are all currently in beta. - Glenn
(8) What's the connection between jQuery and ASP.NET? - NealWalters
(2) The short answer is that jQuery comes standard with ASP.NET MVC so it is interpreted by .NET developers as being approved by Microsoft. - Glenn
be careful when using YUI. An improper use might leave your website slow while rendering pages. The librarries are pretty heavy. - vsingh
+1 for comedy value - Ashley Davis
3
[+40] [2009-08-22 20:41:22] Justin Meyer

With the exception of Dojo/YUI most of these are libraries, not frameworks. Frameworks involve a little more (architecture + development tools).

JavaScriptMVC (http://javascriptmvc.com) is a great choice for organizing and developing a large scale JS application.

The architecture design very well thought out. There are 4 things you will ever do with JavaScript:

  1. Respond to an event
  2. Request Data / Manipulate Services (Ajax)
  3. Add domain specific information to the ajax response.
  4. Update the DOM

JMVC splits these into the Model, View, Controller pattern.

First, and probably the most important advantage, is the Controller. Controllers use event delegation, so instead of attaching events, you simply create rules for your page. They also use the name of the Controller to limit the scope of what the controller works on. This makes your code deterministic, meaning if you see an event happen in a '#todos' element you know there has to be a todos controller.

$.Controller('Todos',{
   'click' : function(el, ev){ ... },
   '.delete mouseover': function(el, ev){ ...}
   '.drag draginit' : function(el, ev, drag){ ...}
})

Next comes the model. JMVC provides a powerful Class and basic model that lets you quickly organize Ajax functionality (#2) and wrap the data with domain specific functionality (#3). When complete, you can use models from your controller like:

Todo.findAll({after: new Date()}, myCallbackFunction);

Finally, once your todos come back, you have to display them (#4). This is where you use JMVC's view.

'.show click' : function(el, ev){ 
   Todo.findAll({after: new Date()}, this.callback('list'));
},
list : function(todos){
   $('#todos').html( this.view(todos));
}

In 'views/todos/list.ejs'

<% for(var i =0; i < this.length; i++){ %>
   <label><%= this[i].description %></label>
<%}%>

JMVC provides a lot more than architecture. It helps you in ever part of the development cycle with:

  • Code generators
  • Integrated Browser, Selenium, and Rhino Testing
  • Documentation
  • Script compression
  • Error reporting

(24) Might be polite to mention your own interest in JavaScriptMVC... - Tim Down
You didn't mention ExtJs 4 which also uses a Model, View, Controller pattern. Not to mention that JavaScriptMVC appears to be far less feature rich. - LittleTreeX
(1) Look! It's MVC too! It must be good! - Christian
4
[+28] [2010-01-08 09:54:20] Andy

I would say that the main question to ask is:

Are you doing small scale website additions or large single page web applications?

Any of the libraries are good for the former, but for the latter I would choose dojo every time. The reason being:

  • its excellent widget system
  • its breadth of functionality
  • its build/minification system
  • its easy extensibility and robust OO design

but most importantly

the fact you have a single source for the toolkit and widgets that are on a defined release schedule with a published roadmap and a large number of people working to make each release happen. This is invaluable for large scale development. I would hate to be in the position of using toolkit X for xhr and dom manipulation, but toolkit Y for some widgets and toolkit Z for other widgets. Trying to get compatibility and synchronized releases would be a non starter. Find out how many people support and maintain your toolkit of choice and work through the scenario of what you would do if the maintainers left to do something else..


This is an excellent point, we use Dojo at work, and its still a pain to upgrade just Dojo alone, I can't image managing and upgrading multiple toolkit/widgets libraries! - Pharaun
I could not agree more. This is why I use Dojo and what makes it a high quality and comprehensive solution for building rich web applications - Ali Gangji
5
[+18] [2009-01-07 07:45:19] jhuni

One thing is nobody seems to have mentioned that you can use more then one library, the MochiKit library in particular, since in terms of name spacing I think it is very well designed. I guess the MochiKit library isn't very popular it is a shame because I think it is hands down the most well designed as a JavaScript library. http://mochikit.com/

I prefer the YUI of all the things mentioned though because not only is it a well designed JavaScript library that doesn't interfere with your code because everything is in YAHOO or wrapped in an anonymous function, but also it has a very clear focus to the library and it fits in with the philosophy of MVC.


(3) Every library is namespaced, besides Prototype extending various data types. YAHOO is so in love with talking about namespacing, I think they should marry it. - Drew
I had a look at Mochikit, it doesn't seem very easy to understand, at least compared to jQuery or YUI. - Marco Demaio
6
[+16] [2009-11-30 18:09:40] Nosredna

Since this question is a bit old, I thought I'd point out that there are new kids in town to consider:

Not as new, but previously unmentioned in this thread:

[1] http://www.bbc.co.uk/glow/
[2] http://code.google.com/closure/library/
[3] http://cappuccino.org/

(3) What is missing on their websites is a clear statement explaining why we should use another library, aren't jQuery, YUI, DOJO, prototypejs, ... enough?! - Marco Demaio
The timeline demo on the BBC Glow website is very impressive! - EarthMind
7
[+13] [2011-03-10 10:14:25] Stephen Chung

A follow-up on Eugene's answer: In addition to the massive infrastructure it provides, Dojo 1.6 is also the first (and only) popular JavaScript Library that can be successfully used with the Closure Compiler's Advanced mode, with all the size, performance and obfuscation benefits attached to it -- other than Google's own Closure Library, that is.

http://dojo-toolkit.33424.n3.nabble.com/file/n2636749/Using_the_Dojo_Toolkit_with_the_Closure_Compiler.pdf?by-user=t

In other words, a program using Dojo can be 100% obfuscated -- even the library itself.

Compiled code has exactly the same behavior as plain-text code, except that it is much smaller (average 25% over minifiers), runs much faster (especially on mobile devices), and almost impossible to reverse-engineer, even after passing through a beautifier, because the entire code base (including the library) is obfuscated.

Code that is only "minified" (e.g. YUI compressor, Uglify) can be easily reverse-engineered after passing through a beautifier.


Not really, Google's Closure is so broken and experimental that it can break any code unless the programmer follow a strict guideline. - magallanes
(2) True, the Closure Compiler's Advanced Mode requires you to stick to a strict set of guidelines. If you steer away from the guidelines, it WILL break your code. However, having requirements does not make it broken or experimental. It is a solid piece of software that is being used to build industrial-strength systems. - Stephen Chung
8
[+10] [2008-12-27 03:12:12] Todd Smith

I'm using YUI for a few of their controls (DataTable, Paginator, TabView, Autocomplete, etc.) since they work out of the box with very little coding. But for most everything else I rely on jQuery for it's simplicity.

I'm hoping in the future jQuery will have an equivalent set of controls so I can stick to a single framework.


9
[+9] [2008-12-27 11:21:40] finpingvin

If you are doing anything really JavaScript-heavy, like a single-page site I would say Dojo [1], because of its great architecture, templates, widget-system and built in widgets for pretty much everything. Otherwise, if you need a more lightweight style, I would say jQuery :)

[1] http://en.wikipedia.org/wiki/Dojo_Toolkit

10
[+8] [2010-10-24 04:03:12] Scott

For a lasting, high quality, bulletproof (or as close as possible) product, you need to be able to do unit and integration tests. jQuery, Dojo, MooTools, and YUI have testing capabilities; not sure about the others. jQuery's testing toolkit is like giving crayons to a painter; sure they can use it, but it doesn't quite do the job. I haven't used Dojo or MooTools testing so I can't really comment on that. YUI's testing toolkit is very nice and I have been using it for a couple of months now.

I have been using jQuery for years now and find that when your project gets to a certain size, code management and resolving bugs gets pretty hard and have been looking for a new tool. Yahoo has done an excellent job and created a solid testing toolkit. It doesn't pollute the global namespace and its results can be read by JUnit and Selenium. Also, the syntax is very friendly to any xUnit user.

As for widgets and the like, YUI does a good job, but Dojo and MooTools both have extensive plugins and widget support from large communities. Dojo integrates extremely well with the DOM, but MooTools and YUI are strong there too.

All in all, I think Dojo, MooTools and YUI are great frameworks, the way you like to code will determine what you use. I'll stay with YUI for now.


11
[+7] [2010-07-07 14:26:15] Hoghweed

In my experience, everytime I saw that first of all Javascript provides a kind of freedom which makes possibile to do everything you want, in every way you want, and that is not the best at all.

I say this as a preface because I think that jQuery is powerful and cool, but let developers to do things in a "quick and dirty" way. My tiny poreface was about this, generally developers makes dirty dirty things in javascript, which tends to became dirty a lot, difficult to mantain and last but not least, difficult to understand!

I used ExtJs and I really love it because it helps to do things in a better way, more structurated, well designed and based on good principles, OOP too, Fine OOP.

I our project when we abandoned ExtJs to go to jQuery we loose all the good designed scripts, easy to read and to understand, and we earned just "quick and dirty" things!

So at the end I can say:

  • If you want to make things well, clean, elegant and more.. the choise is ExtJs
  • If you want, or need to do things quick as possible then use jQuery

p.s.

The fact that Microsoft adopted jQuery it's not well as it could seems about using or not jQuery ;-)


You should then OOP your js. Backbone might be a nice framework to start with. - Nguyen Chien Cong
12
[+4] [2009-05-17 19:05:48] alamar

I have to add something for consideration.

Prototype's API documentation rocks. http://prototypejs.org/api

jQuery's documentation sucks, frankly. I mean, just compare those! http://docs.jquery.com/Main_Page

Also, Script.aculo.us is a known value. I can't say it's technically the best, since all frameworks have something comparable, but who on earth cares about "technically the best"? You don't. I don't, either.


(29) I do not agree, I like jQuery's documentation very much. I find it very clear, especially the examples and the way it is split up in what you wan't to do with it (instead of in the different Objects as prototype's). - Pim Jager
(2) agree 100% see api.jquery.com - adardesign
(1) api.prototypejs.org is the new location of the api documentation. - Thorpe Obazee
And it SUCKS a big time, so I recommend everyone to bookmark prototypejs.org/api - alamar
@alama: I used to agree with you, but jQuery is not so famous that I found another version of the api: same contents, but much better to use: jqapi.com - Marco Demaio
sry, but i have to disagree. what do you have against the jquery api docs? I find jquery a very well documented library; i've never had any trouble finding something there. - gion_13
13
[+4] [2009-11-08 09:32:31] dmh

Another option is SproutCore [1].

Right now it seems that they might still be too young (e.g. underdeveloped widget/plugin libraries, lacking documentation) to seriously compete with the big players, but I've never used them. It looks like a MVC framework with some potential.

It seems they got a nice visual style (Apple used them), though I wonder how easy it is to skin/brand. (One of the worst things about Ext is how you can easily identify any Ext app in about half a second).

[1] http://en.wikipedia.org/wiki/SproutCore

SproutCore 2.0 is great. It's mainly just the framework, though, and you would use something like jQuery/Dojo/etc on top of it for the UI touches. - therealklanni
14
[+4] [2011-07-22 19:35:06] shaILU

Before starting new GUI for our new project arrival, I made some research.

Here are my findings (remove spaces from "http: // "; bcoz stackoverflow is preventing me to do so :)): Prototype framework favorable links:

http://en.wikipedia.org/wiki/List_of_Ajax_frameworks

http://www.javabeat.net/articles/12-comparison-of-ajax-frameworks-prototype-gwt-dwr-and-1.html

http://www.devx.com/AJAXRoundup/Article/33209

Dojo framework favorable links:

http://blog.creonfx.com/javascript/dojo-vs-jquery-vs-mootools-vs-prototype-performance-comparison

jQuery framework favorable links:

http://blog.creonfx.com/javascript/mootools-vs-jquery-vs-prototype-vs-yui-vs-dojo-comparison-revised

Test speed of different RIA frameworks:

http://mootools.net/slickspeed/#

More comparasions:

http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

http://jqueryvsmootools.com/#conclusion

Out of all these findings I started using SmartClient 5. Initially we faced some issues but as SmartClient matures I find it interesting in many terms: 1. APIs doc help and examples 2. Flexible controls 3. Forum

Today I am working on SmartClient 8 and few on my GUIs are in production running successfully. Actually the great help with SmartClient is that you find every thing at one place. No need to dug many other sites that is hard to do for any other open source RIA framework.

So my choice is no doubt SmartClient.

Thanks Shailendra (shaILU)


15
[+3] [2011-03-07 14:27:47] EarthMind

A great ExtJS alternative: Qooxdoo [1]. It's very advanced, feature-rich, portable and performs like the best. The documentation is certainly no show stopper.

Quoted from their website:

qooxdoo is a comprehensive and innovative framework for creating rich internet applications (RIAs). Leveraging object-oriented JavaScript allows developers to build impressive cross-browser applications. No HTML, CSS nor DOM knowledge is needed.

It includes a platform-independent development tool chain, a state-of-the-art GUI toolkit and an advanced client-server communication layer. It is open source under an LGPL/EPL dual license

[1] http://qooxdoo.org

16
[+2] [2010-02-05 05:23:22] user266787

Everybody talks about various JavaScript libraries and how cool one is vs. the other. How many developers really think about the bottomline impactfor their clients/employers????

In our analysis, we found that if you were to build a typical browser-based, serious business application using any of the frameworks/libraries mentioned above, you are likely to have an army of developers developing things in mostly inconsistent manner unless you have an army of code-reviewers/architects who understand how to achieve good modeling in JavaScript-based applications.

And even if you used best of what is available today, it is likely to be outdated in a matter of months if not weeks because landscape is changing so fast. Why is everyone getting so excited about coding JavaScript code to design some cool looking ui, but not even asking where are IDEs that once existed 15/20 years ago?? Does anyone even know/understand what I am talking about? Why are we coding same solutions again and again, instead of drag and drop IDE and the productivity that can be achieved with it?

At end of the day, what matters to the business is a quality, usable business solution that can deliver a lasting solution for years (not months or quarters!)

Finally, coming to the point, after thorough research we settled on General Interface (http://www.generalinterface.org) - originally from Tibco and now donated to the Dojo foundation. It is not the most ideal solution for creating s3xy Ui, but provides pretty good options for creating a meaningful business application.

If you haven't looked at it yet, building little more than s3xy websites, and have a capability to understand the business perspective (along with technical maturity_), then do explore this! You might be pleasantly surprised.


(19) Reads like an ad. - aehlke
(2) Look at the programmers/dev who are still using VIM and Emacs, IDE can provide some features and functionality, but they are not "The last word" in computering you know. Deep knowledge of the limits and abilities of the said language under development, well constructed testing plans and well designed pages will trump IDE any days honestly. - Pharaun
1st: This question asking about framework, not only UI. 2nd: changing is good, it shows the project active, solve many bugs, add features and follow new tech/standard, anything in IT was changing rapidly 3rd: If browser based is not good in business then why there is much developer until come out with this wiki question! 4rd: How long standalone IDE can sustain without maintaining/updating the tech! 5th: standalone app also have drawback like installation, admin and hardware requirement which web based more suitable. The best developer - expert in web & stand alone + now mobile application. - CallMeLaNN
(2) Screw clients/employers/cross browser compatibility/production value/money/mobile/trends. I've wasted my life caring about such nonsense. I now code for myself, it's ten times more rewarding. - tomwrong
(1) There's no productivity killer bigger than "drag and drop IDE". It too easily enables the uneducated to be dangerous. I'm not saying that it's emacs-or-bust, but if you think that the problem with JS coding is the lack of VisualStudio-like D&D IDEs, you are sorely mistaken. - alphadogg
17
[+1] [2009-08-05 16:54:51] Eric

JQuery + SmartClient

I believe SmartClient officially supports comingling with JQuery on the same page. ( http://forums.smartclient.com/showthread.php?t=3578&highlight=jquery [1])

So use JQuery for basic stuff, and insert heavy-hitting application-like widgets via SmartClient.

[1] http://forums.smartclient.com/showthread.php?t=3578&highlight=jquery

18
[+1] [2009-11-30 18:04:28] Tom

I definitely recommend the use of both jQuery for all the reasons listed above, and YUI for the out of the box elements.

You can't go wrong using those!

Of course I am sure some other frameworks (Dojo, Prototyp,... ) are good too.

After it's all a matter of taste and of efficiency.


19
[+1] [2010-01-08 08:57:37] Mark

I use jQuery because there exists a goos integration into my standard web framework struts2 and it is easy to extend.

See http://code.google.com/p/struts2-jquery


20
[+1] [2010-01-17 05:01:03] user252475

The trends comparison has a typo. Here is updated link to trends [1] for last 12 months.

Interesting post and question. I'm open to different libraries but tend to use jQuery because:

  • I find I'm very efficient coding in it
  • the documentation is good
  • it's fast and not very buggy across browsers
  • it is actively being developed
  • it has a good community both in terms of conversation and plugin development
[1] http://www.google.com/trends?q=jquery,dojo,mootools,yui,extjs&ctab=0&geo=all&date=ytd&sort=0

21
[+1] [2010-02-15 18:13:09] ha_pb

I am new to DOJO and so far I hate it. I had a hard time to find a good forum. I went to http://o.dojotoolkit.org/forum but it's obsolete. Searched on Google for hours and haven't found a good one. Could anyone point me to the right DOJO forum?

We are using Spring Faces which uses DOJO as its back end. Therefor we want to use DOJO for the rest of our normal Javascript tasks. However, if it's difficult to find support and documents for DOJO, we will have to switch to jQuery.

Thanks,

Fantabk


(1) You hit Dojo in the middle of its site redesign. Try dojotoolkit.org/community or /documentation - peller
I've been trying out dojo this week and the #dojo channel on irc.freenode.net has been friendly/helpful. - phaedryx
Do you still hate it after the redesign? - AlexanderN
22
[+1] [2010-09-24 19:58:12] AutoSponge

Ultimately, it will depend on your project's requirements, your team, your testing methods, and your audience.

jQuery was my first library, and I learned a lot about the language from reading that source code. But, when working on mobile apps, I don't bother with jQuery since most of the weight is resolving cross-browser issues. If your team needs modules and unit tests in namespaces (yadda, yadda, yadda) you may want to look at YUI or ExtJS/Sencha.

The team has to learn it too. jQuery has a lot of good docs and community support. ExtJS is powerful, but heavily relies on object literals with tons of options to control behaviour--something foreign to some programmers.

Regardless, try to pick one library per project.


23
[+1] [2011-12-02 11:26:41] kapv89

IMO , jquery is pretty good at what it does, that is, providing a better and easier way to write common js tasks. To build up something more complex (single page apps), check out knockout.js and backbone.js, very small libraries which can sit on top of jquery and help you make awesome apps.

I don't have experience with backbone, but am currently working on a decently sized app with knockout.js. KO follow MVVM pattern, I really don't care much about it but love the fact that I can have all my crud data in a CRUDModel which interacts with a RESTFUL Interface server-side and all other complex business logic in reusable Models which extend the CRUDModel and can handle many-many, one-one and one-many relations.
Also, you can have bindings applied to several View-Models at the same time, each with a different root-element, and that gives you a LOT of flexibility with your app


24
[0] [2009-07-01 21:07:54] Drunken Programmer

I have recently started using GQuery (jQuery port for GWT) and it seems to be the best thing that happened to me after Krispy Kreme doughnuts :)

I am a java developer so there is a bias for this framework. The other reason why I recommend it is for the performance. Check out the GQuery vs jQuery performance comparison at http://letusdemo.appspot.com/ I uploaded a demo by Ray Cromwell.


GQuery is cool. But that performance comparison is old. jQuery 1.2.3! I'd love to see an update. Also, does GQuery keep up with changes that get made to jQuery? - Nosredna
I will work on the weekend to update the demo to do a comp with the current jQuery build. Its still build 1.0 and is being worked on by just 2 ppl so I really dont know how the update process is going to be. But if it gives any comfort the 1.0 was released on May 29th. I think it ported jQuery as of then. - Drunken Programmer
25
[0] [2010-06-09 18:35:07] bennett

I have to agree with another post, re: a user-friendly fast visual IDE. It'd be really, really great to have a decent JavaScript debugger built in as well.

Also, how about a JavaScript framework with strongly typed variables and real OO structures? That would surely make the transition to JavaScript development a lot less painful for some of us used to a more, shall we say, rigorous programming environment.


26
[0] [2011-02-10 14:49:43] user417417

I would recommend to look at dhtmlx component library [1], if you need a set of ready UI widgets. It's quite easy to get using the components and the documentation is fairly good.

[1] http://dhtmlx.com/

27