Comments:"Rant: Backbone, Angular, Meteor, Derby "
URL:https://gist.github.com/4454814
Disclaimer: This post is Meteor & Backbone beef. Both Meteor and Backbone are absolute genius, and far beyond anything I could dream to create. But IMO there are better tools. Prepare yourselves *gulp*, I need to get this off my chest.
First, Backbone. Why people? It revolutionized JavaScript, did wonderful things for the world, and served its purpose well. But now we have better tools, so let’s move on. It’s like Gentoo users proselytizing Gentoo to the masses, perpetuating it as most common Distro; where all this time, Ubuntu would have saved everyone countless hours. Not everyone wants to build everything from scratch - use Angular (or Ember, Knockout, etc).
Ok, Meteor v Derby. Meteor doesn’t use NPM, and has no REST support. Am I wrong? That’s huge! That means you can’t have an API (read mobile app) unless you write a second server accessing that MongoDB store. Derby is the exact same thing as Meteor, plus REST and NPM. So why do people use Meteor? For legitimate reasons: it has a better public face: more PR& press, tutorials, and resources. Derby has no press, behind-the-curve documentation & major version releases, and always-down live examples (see HabitRPG, PhishVids, and Bibliaovaso for functioning production examples). However, the codebase is impeccable and well-maintained, the architecture a work of genius, and its future bright. But to use Derby you have to use HEAD, and survive the sparse docs. Learn it and you’ll go further than you’d have gotten with Meteor. Derby should get its act together, and Meteor people should migrate.
Angular is awesome. That is all. Derby gets you further for the web app because you get real-time + data persistence automatically. However, as Angular is a client MVC, you can detach it from the server if you want to recycle your code on PhoneGap or App.js. So here is my recommendation:
{IF} The web app is the most important part, and you want it fast. The mobile app will come later only after the web app proves itself.
- First Derby
- Then Angular + PhoneGap, exposing your backend via REST (Derby static routes, Express)
{ELSE} You want mobile & web at roughly the same time, they’re equally important
- Angular for both Web & PhoneGap, + Server
- Server = Express (+ Socket.io / Sock.js for real-time), or even Parse / Firebase
FWIW, Meteor and Backbone rock - I’d be promoting the hell out of them if Derby & Angular didn’t exist. But they do, so I </rant>.
Note: original post here, but my Drupal server has been miserable lately and I'm currently migrating. Go there to post comments.