

What makes me angry - jQuery - Couto
http://wrzasq.pl/blog/75.html

======
jamesmoss
I think the author has totally missed the point of jQuery which is why he's
probably so frustrated. It's not meant to be used to build massive client-side
applications, instead it's a tool to make dealing with the (terrible) DOM and
AJAX APIs a bit more bearable and abstract away any cross-browser nuances.

Instead I'd recommend something like backbone.js or ember.js, they are both
designed for building client-side apps.

He suggests using Prototype instead. Don't do this. In my last job we built a
complex CMS on Prototype; it was horrible. Prototype's DOM API is verbose and
unpredictable and the classical inheritance model it supplies isn't worth
switching. Also development is pretty much dead, the last release was November
2010.

~~~
kls
The author mentions Dojo at the end of the article in passing, which is a
great all inclusive framework for large client side apps. But yest I think the
author is missing a few things. The first and most glaring is complaining
about jQuery lacking OO, jQuery's philosophy is intentionally functional. It
sometimes makes it difficult to extend or add onto jQuery but that is not
jQuery's bag, they are more of an API that you use in your own app, they are
not really a architectural pattern that you follow to build an app. If you are
adding onto the jQuery object to build your app, you are probably doing it
wrong. For a toolkit that gives a developer an architectural framework, they
should look at Dojo or roll their own buy utilizing Backbone, Require, various
other libs and jQuery.

------
robinduckett
You could use ender.js (<http://ender.no.de/>), it's completely modular.

It is not, however, ready for production use. At all. I had the following
blocking internet explorer 7 for ten seconds each page load:

    
    
      if ($('input[name=firstname]').length) {
        // stuff
      }
    

The bit it was choking on was the selector. Oh and there's the 2+ second
processing time each page load on __any __browser when you've got more than
about three modules loaded in.

