Preface: Not a Meteor Expert. Please comment with improvements.
Paraphrasing philosophy:
- Hoodie, Look ma! No Backend.
- Meteor, Backend Power on the Fronend.
A couple of high-level observations:
- Hoodie empowers UI/UX people to build full apps without any backend experience or backend experts.
- Meteor empowers developers build apps faster.
- Hoodie focusses on frontend APIs that are hooked up to a generic backend.
- Meteor brings backend APIs to the browser.
- Hoodie is offline-by-default and mobile friendly by treating in-browser-storage as a first class citizen and using asynchrnous, on-demand data exchange, that is real-time when network is available.
- Meteor focusses on always-on real-time networking between client and server.
- Hoodie stops shy of where jQuery, Backbone, Ember, Angluar and friends start. You can pick your preferred frontend stack.
- Meteor comes with a frontend framework. (might be compatible with others, lacking expertise here)
- Hoodie uses CouchDB in the backend for data reliablity and sync.
- Meteor uses MongoDB.
- Hoodie uses NPM for modules.
- Meteor has a custom package manager.
- Meteor has been public for about a year, with a great community, VC funding and all.
- Hoodie is newer and still in developer-preview, but starting to attract interest, contributors and some sustainable business already.
Similarities
- Open Source Licenses: MIT (Meteor), Apache 2.0 (Hoodie).
- Full JS Stack, browser in the front, Node.js in the back.
- Fast prototyping of apps.
I've no opinion on meteor, but seems to be super cool! From my understanding, the goal is to get rid of the borders between frontend / backend, to make the same code run in both environments. Right?
We have a different approach. We've started by dreaming the perfect frontend API to hide away tasks that need some kind of backend. Then we've implemented it with CouchDB and Node.js, because that's what was the simplest for us. Backend might as well be implemented PHP, Java, you name it. I, as a frontend dev, don't care, really. All I want is a method like
sendEmail( emailObject )
, that should do what it says and don't bother me with technical details and limitations.It's a lot of magic & illusion. Some people don't like that. But lots of people do, apparently :-)