Backbone.js - Dress shoes
Give a girl Backbone.js, and she can conquer the world.
- Marilyn Monroe
The Bad - Backbone does not support two-way data binding, which means you have to write a lot of basic code to allow your models to update your views. This is sometimes seen as a good thing by some developers since they want to choose exactly how that gets done. If you want to be comfortable, you’ll have to find yourself some insoles.
Ember.js - Boots
Ember.js was made for walking, and that’s just what it’ll do.
- Nancy Sinatra
The Good - Ember.js brings a lot of power to the front end with modules like ember-data and ember-routing. Ember comes with out of the box two-way data binding, which can have some neat applications. The Ember Core team is constantly improving the open source project, and maintains a very steady release path for new versions of the framework. Plus, Ember has really great guides to getting started.
The Bad - Ember is a very convention-driven framework, much like Ruby on Rails if you come from the server side. These conventions can be a comforting fit to some developers, but can seem stifling to other developers who want the freedom to fit the solution to the problem, rather than fitting the problem to the conventions. Ember is also criticized for injecting
<script> tags around text elements in HTML for two-way data binding. This is scheduled to be removed in future versions of the framework.
AngularJS - Toe shoes
It isn’t the mountain ahead that wears you out; it’s the grain of sand in your AngularJS directive.
- Robert W. Service
The Bad - Angular performs a lot of magic and logic under the hood to make two-way data binding possible from a markup perspective. This can make debugging Angular apps a bit difficult, and increasing performance is always a bit hand-wavy unless you have a very good grasp of the Angular core logic. The API for creating directives is also a bit unintuitive, especially for things like transclusion.
Bonus - LEBRON - Barefoot
A simple life is good with me. I don’t need a whole lot. For me, a T-shirt, a pair of shorts, LEBRON on a beach and I’m happy.
The Good - So, LEBRON is not really a framework, just like being barefoot isn’t really a shoe type. It is a combination of LevelDB, Browserify, and npm. It all comes from this talk by Max Ogden, one of the main culprits behind nodeschool.io. What the LEBRON stack gives you is full control over every single tiny module that you use in your web app. You can use exactly what you need for your project and have full access to a lot of browserify-able modules through npm.
The Bad - LEBRON is not something that is very accessible to beginners, especially since it does not have the same formal learning resources as the other large frameworks. You have to have a pretty good grasp of finding quality modules before starting to use LEBRON.
I am really excited to learn all of these different frameworks, and hopefully will have a reason to dive even deeper into one of these in the future. Personally, I will probably be diving into LEBRON (or something similar, like Ampersand.js) as soon as I have some free time, just so I can learn what it takes to work on a web app from scratch.