Backbone.js is a pointless piece of code!
If you need a framework for your web application, do yourself a favor and stay away.

You're probably wondering about how this can be true, right? I mean, after all, there must be a reason behind Backbone’s success... Well, of course there’s a reason. It is one that JavaScript developers don’t like hearing but still -

The reason behind Backbone.js success is, mostly, the ignorance of its users.

That’s right! When is comes to design patterns and coding best-practices, the average JavaScript developer is a layman.


You see, JavaScript developers are used to working with libraries, not infrastructures. There’s a big difference! Take for example jQuery. jQuery helps you with cross-browser abstraction and keeping your code shorter, simpler, and more readable than if you were writing it using the native JavaScript API. But jQuery is not an infrastructure.

If libraries help closing gaps and filling holes, infrastructures serve as the foundation of applications. They are meant to help you maintain a sane, well formed, and scalable code base. Backbone won't do this for you. On the contrary! The lack of clear separation between areas of responsibility often, even though unintentionally, encourage you to cook spaghetti.

Luckily enough for Jeremy Ashkenas, all of this doesn't really matter because common JavaScripters can't tell the difference... For them, separation of concerns is nothing but a funny term that comes from the boring world of server side development (or something like that).


Take a look at this quote from Backbone’s site:

“Different implementations of the Model-View-Controller pattern tend to disagree about the definition of a controller. If it helps any, in Backbone, the view class can also be thought of as a kind of controller, dispatching events that originate from the UI...”

If this isn’t a red light then what is?