Now let’s finally look at the list I’ve compiled, which includes a short introduction, my experience with them, if there is any, further reading and a list about their dependencies, license and their examples at TodoMVC.com. For a more in-depth comparison of Backbone and Angular I can recommend this article by the way: Backbonejs vs Angularjs : Demystifying the myths, which pretty much sums up why Angular has been gaining so much traction lately.
Here a short comparison of which of the frameworks are looked for the most in the past year (I’ve taken the google autocomplete suggestions to find the probably most frequently searched for term, with Angular it didn’t include the dot):
Angular.js – The Fresh Breeze
Angular has received a lot of attention, especially after Google got involved in the development and today still is actively maintaining the project. What struck me as different about this is that this framework needs you to extend your HTML with tags and properties whereas you in many others select your elements based on classes and ids.
My Experience with Angular
As the second client side MVC framework I picked up I have found Angular as fun and something that does not want you to write a lot of lines of code. The lines you have to write though, require some re-thinking of what you might have learned before.
The easy two way data binding and the examples that show you how easy it is to work with input directly changing in your page are just a great demonstration of what Angular is about, getting consistent data fast and creating something with immediate responses.
Further Angular Reading
There a great post series that targets some of the pitfalls and showes best practises by Vlad Orlenko:
Also here’s a beginner tutorial at net.tutsplus.com: Building a Web App From Scratch in AngularJS. At egghead.io you can find a lot of really good and perfectly split up video tutorials that are 2-5 minutes each, explaining one feature at a time.
- Todo example app
Backbone.js – The Jack of all Trades
Backbone is probably the most well known tool for data binding and allows the developer to have all the flexibility they need. Many argue that Backbone is not a framework, but a utility that helps you structure your code. This is true, since you will have to write more code compared to the others that are presented here, but it would be unfair just leaving it out, since it is definitely competing with both Angular and Ember.
My Experience with Backbone
I’ve learned how to use Backbone just before I started learning Angular and it felt a lot more familiar to typical DOM manipulations that you usually would do with jQuery. Basically you get a couple of extra functions and objects that help you along in data rich projects, but not a lot more. The documentation is pretty good and there’s a lot of resources across the web, that just gets a little thin when you’re bringing Require.js to the table without fully understanding it.
Further Backbone Reading
- Todo example app
Ember.js – The Friendly Companion
Ember, formerly known as Sproutcore 2.0 is built for easy and to take work off the shoulders of the developer with its convention over configuration philosophy.
My Experience with Ember
First of all: I have never used it, only fiddled with a demo. I’ve read some examples and in general I like the way Ember does things. It was a consideration, but since it’s pretty young, rebranded and there is two large stags on the field, I have not had the opportunity to try it out yet. I’d love to try it on a project, just for the sake of feeling the right to put one of their cute and cool stickers on my machine. If you have the time to dive deeper than I did so far, have a look at their recommended learning resources.
I think Ember can be a great framework, especially if you don’t want to jump into the sometimes cold water of learning the new concepts of Angular just yet!
- Todo example app
If you love learning, I would recommend that you learn Angular and either Ember or Backbone. If you don’t know what to choose, roll a dice, because each of them can probably get the job done and you’ll learn something. I hope you’ve gotten an overview of the three I consider the most important, but of course there are others out there. Never stop looking and let me know what you use and why in the comments!