2

I've been using various javascript frameworks including mootools, jquery, prototype and scriptaculous and have found them all good, but difficult to extend to more complex ideas.

If I am going to knuckle down and learn one, which is the simplest to extend and use whilst staying powerful enough to use in a variety of directions?

Bill the Lizard
  • 398,270
  • 210
  • 566
  • 880
Rich Bradshaw
  • 71,795
  • 44
  • 182
  • 241

7 Answers7

21

I propose jQuery.

I'll give you some of the major arguments from the presentation that my team put on yesterday for senior management to convince them of that.

Reasons:

  1. Community acceptance. Look at this graph. It shows searches for "prototype", "yui" and "scriptaculous" growing from 2004 to 2008. Then out of nowhere in 2006 searches fro "jquery" shoot up to double the number of the other libraries. The community is actually converging on a single leading product, and it's jQuery.

  2. jQuery is very very succinct and readable. I conducted an experiment in which I took existing code (selected at random) written in YUI, and tried re-writing it in jQuery. It was 1/4 as long in jQuery. That makes it 4 times as easy to write, and 4 times as easy to maintain.

  3. jQuery integrates well with the rest of the web world. The use of CSS syntax as the key for selecting items is a brilliant trick which helps to meld together the highly diseparate worlds of HTML, CSS and JavaScript.

  4. Documentation: jQuery has excellent documentation, with clear specifications and working examples of every method. It has excellent books (I recommend "jQuery in Action".) The only competitor which matches it is YUI.

  5. Active user community: the Google group which is the main community discussion forum for Prototype has nearly 1000 members. The Google group for jQuery has 10 times as many members. And my personal experience is that the community tends to be helpful.

  6. Easy learning curve. jQuery is easy to learn, even for people with experience as a designer, but no experience in coding.

  7. Performance. Check out this, which is published by mootools. It compares the speed of different frameworks. jQuery is not always the VERY fastest, but it is quite good on every test.

  8. Plays well with others: jQuery's noConflict mode and the core library's small size help it to work well in environments that are already using other libraries.

  9. Designed to make JavaScript usable. Looping is a pain in JavaScript; jQuery works with set objects you almost never need to write the loop. JavaScript's greatest strength is that functions are first-class objects; jQuery makes extensive use of this feature.

  10. Plug-ins. jQuery is designed to make it easy to write plugins. And there is an enormous community of people out there writing plugins. Anything you want is probably out there. Check out things like this or this for visual examples.

I hope you find this convincing!

mcherm
  • 23,999
  • 10
  • 44
  • 50
  • That is impressive. Pity the eyecon accordian is a bit rubbish in IE7 but I'm sure that could be fixed. JQuery seems significantly faster than the others on IE7 (even after several runs to iron out limited clock resolution) not so much on FF but still quick. – AnthonyWJones Sep 26 '08 at 16:34
  • Mind you the trends info you mention is skewed a bit. If you consider english speaking countries then prototype is the most searched. – AnthonyWJones Sep 26 '08 at 16:38
  • 1
    @AnthonyWJones: "yui" is a common name in Asia (especially in Japan) and "prototype" is a common English word. So taking that into account it's especially impressive that jQuery is still doing so well on that chart. This is the preferred Accordion, at this point: http://docs.jquery.com/UI/Accordion – John Resig Sep 26 '08 at 16:59
  • jQuery is also used by a number of large corporations. That's a pretty neat "stamp of approval". – cllpse Sep 27 '08 at 11:22
  • And as of this morning I hear Microsoft has announced official support for jQuery. That's quite an endorsement. – mcherm Sep 29 '08 at 16:19
6

In my opinion, jQuery is exceptionally powerful and simple. It uses CSS selector syntax to pull back elements and only adds two functions to the global namespace: jQuery() and $(), which is an alias for jQuery().

There are a massive number of plugins available for jQuery to let you do things like create slide shows, accordion controls, rich calendars, etc. The book "jQuery In Action" is a phenomenal companion to the online reference material.

We used it on my last project to create a fairly rich scheduling tool and we liked it so much, we're encouraging it's adoption throughout our consulting company as the defacto standard for all JavaScript use. You can check out the results at http://www.stanleysteemer.com

1

jQuery is my favorite

Amandasaurus
  • 58,203
  • 71
  • 188
  • 248
1

Prototype. Is simple, unobtrusive, and makes your javascript code look cleaner than ever.

It has a wonderful user group, where you can get your questions answered almost immediately

Pablo Fernandez
  • 103,170
  • 56
  • 192
  • 232
0

Another vote for jQuery. It's small, focussed, and yet very powerful. It's also reasonable well documented, by the (generally awful) standards of JS libraries.

It's also very easy to extend, once you get your head around the syntax.

skaffman
  • 398,947
  • 96
  • 818
  • 769
0

NOTE: This answer was pre-Angular/Ember/etc. so addresses an outdated issue.

I teach this stuff, and really had little choice but to home in on JQuery, since the majority in the industry has already 'chosen' it (not always a good reason, I know), but also because - for students that already know some CSS - the entry point is lower.

I've also used Mootools (my second choice), but a colleague convinced my to switch to JQuery with the 'programmability' argument - I find it cleaner to code with and understand. The JQuery community, online documentation, free online books and third-party sites help, too.

Dave Everitt
  • 17,193
  • 6
  • 67
  • 97