Skip to content

Instantly share code, notes, and snippets.

@slavcodev
Forked from jblanche/comparison.md
Last active August 29, 2015 14:11
Show Gist options
  • Save slavcodev/770473067a9975e75a61 to your computer and use it in GitHub Desktop.
Save slavcodev/770473067a9975e75a61 to your computer and use it in GitHub Desktop.

AngularJS

Pros

  • Perfect for complex "client-side" application, where the complexity is more in the way "components" of an app interacts with each other than in the way they sync and or interact with a backend.
  • Very clean separation of concerns
  • Uses concepts that kind of look likes the future of HTML/DOM (DOM templates, binding attributes…).

Cons

  • A bit complicated to grasp. A lot of new concepts.
  • jQuery or another dom parsing framework in directives may be painful to use (need more tests) because of the way angular compiles templates (see http://egghead.io/video/angularjs-angularelement/).
  • Still under heavy development, some stuff changes a lot in the master version (but 1.0 can get you started)
  • Some common things are still unavailable (you can't show or hide a view with an animation like fadeIn / fadeOut).

Tl;DR

Good for application with a big level of complexity on the client side, but you'll need to learn A LOT of new stuff.


BackboneJS

Pros

  • Very easy to start with.
  • Very small.
  • Can be used with any external library.
  • Documentation is good (it's easier to document a small project)

Cons

  • It does just a few thing to help you create a good structure for you app, but you still have to do much of the work ! (even simple things like cleaning events binded to a view when you remove the view).
  • If you add other components on top of it (Marionette, Chaplin, Thorax), the learning curve increases ( but not that much and code complexity decreases).

Tl;DR

Good for small and simple applications and easy to understand.


EmberJS

Pros

  • Convention over configuration, you can get a lot of thing working with just a few lines of code ! (see https://peepcode.com/products/emberjs)
  • EmberData looks perfect for syncing data between your app and a server api and/or localStocalStorage (especially if your server code follows a few convention, Restful routes…)
  • I do trust Yehuda Katz and Tom Dale work a lot !

Cons

  • Still under heavy development, some stuff changes a lot (especially for EmberData).
  • You're forced to use the Handlebars template engine (but it's a good one so not really a big con)
  • Documentation is getting better every day but still far from perfect.

Tl;DR

Good for applications where you need to deal with syncing data with server and/or save it offline. Looks like a good fit between Backbone and Angular but still young…

Other articles

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment