Skip to content

Instantly share code, notes, and snippets.

@ble
Created January 4, 2013 22:11
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ble/4457840 to your computer and use it in GitHub Desktop.
Save ble/4457840 to your computer and use it in GitHub Desktop.

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.

@ylluminate
Copy link

I'm curious, I just caught wind of http://angularfire.com a couple days ago and it really seems that Angular + Firebase is quite a sight to behold. Any thoughts?

@ble
Copy link
Author

ble commented Jan 8, 2014

@ylluminate Not sure if you knew, but this isn't my rant: I forked this gist and it appears that the original author deleted it, but you can still see that I'm not part of the revision history.

@Slava
Copy link

Slava commented Apr 29, 2014

I know this is old but if anyone stumbles on it:

@tbennett
Copy link

tbennett commented Sep 3, 2014

The orginal author states:
"...That means you can’t have an API (read mobile app) unless you write a second server accessing that MongoDB store."

Again for the late stumblers:
Slava and team recently addressed the mobile issue with Meteor/Cordova
( https://www.youtube.com/watch?v=zzNoXbv1DX4 ) fast forward to 24:00.

Try it w/ "meteor update --release CORDOVA-PREVIEW@5

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