Javascript Frameworks: Angular vs. Meteor vs. Backbone
All frameworks are not created equal...but what really is the difference? And when should I use which one?
Imagine you need a new car. Usually, you can go to any car dealer, and the process for choosing a car is the same: You get in, turn it on, and drive around - then you buy the whole car. The only difference is the look and feel, but a car is still a car. Unfortunately, it is not like this when choosing a framework.
Shopping for a framework is more like going to the factory and choosing a bunch of components: do you want the whole car (Meteor), or just the engine (Backbone), or the rest of the car without the engine (Angular)? It probably depends on whether you have opinions about all the different pieces of your car.
###...I don't have opinions, I just want a car...
Meteor is to Node as Rails is to Ruby
Meteor is a full-stack framework that allows you to write your entire application in Javascript. It is built to enable real-time updates, so it is good for apps that need to react to a lot of event-driven changes to the database (like, a chat app or a dashboard or a twitter-like-thing). Because it is full-stack, you don't need to configure it to work with a back-end like Rails, or a database -- everything comes with.
It is freakishly easy to get a Meteor app up and running. Follow these instructions and you will have a sample app running in your browser in about 3 minutes.
I would need to do more research to tell you exactly what's customizable in Meteor. But, this is what you get without special configuration:
##AngularJS
Angular has a reputation for having a huge community of followers, which means lots of documentation and support while you're learning. If you already have a SQL database that you'd like to use in your app, Angular is definitely better than Meteor, because you bring your own back-end to the table (and sit yo'self down!). Angular has been called "A toolset based on extending the HTML vocabulary for your application." Meaning, it's not a complete package like Meteor, but it's got a lot of useful things.
###...I just want to buy all the parts separately and construct the car myself...
Backbone is considered lightweight, minimalist, highly customizable, and difficult for the beginner developer. It is best used when you have a lot of code and technologies already set up, and you don't want to re-write or override your existing code because some framework tells you that you have to do things a certain way. I read one blogger describe Backbone as "literally just the spine to hold you up, but no meat or muscles".
It seems like Backbone was cool before Angular took over as King of the Hill. More companies might already have a codebase in Backbone, but Angular seems to be "the future". I feel like people who like Backbone might also like telling you how, in their day, they walked to school uphill, both ways. In the snow.
Hey, there is something to be said for learning things the hard way.
People say it's cool. I hope to review it another time. It's supposed to be a happy medium between Backbone and Angular - less opinionated than Angular, but with more features than Backbone. I don't know how it compares to Meteor. Good luck!