Automattic / mongoose

MongoDB object modeling designed to work in an asynchronous environment.
https://mongoosejs.com
MIT License
26.94k stars 3.84k forks source link

further isomorphic features #3061

Open mgenev opened 9 years ago

mgenev commented 9 years ago

Hi, I love mongoose, I think it's brilliant and I'm really excited about the isomorphic direction.

I thought that the next logical evolution that will make mongoose even much more awesome is to add client features similar to ember-data, breeze or orbit - namely the ability to query from the client, and to cache results by id so they don't have to be re-requested.

Has this been considered and if so how much further along is it? I'm trying to scope the best client data-layer and breeze is great, but it assumes a .net server and its node/mongo implementation would force me to not use mongoose on the server which is a deal breaker for me. If I could use mongoose on the client for querying and caching it would be a dream come true.

vkarpov15 commented 9 years ago

It's definitely a possibility, but right now it isn't even on the roadmap. Unfortunately the internals of mongoose would make this far trickier than I would like. There's a lot of internal stuff that needs to change for this to be a possibility.

mgenev commented 9 years ago

Ah, I know nothing of that, I hope it can happen sooner rather than later. Where can I look at the roadmap?

vkarpov15 commented 9 years ago

As it stands, the roadmap is whatever is on the github milestones page: https://github.com/Automattic/mongoose/milestones.

mgenev commented 9 years ago

Thank you I'll keep track of that.

A bit unrelated, but how come mongoose is on Automattic's org, but is maintained by you and you work for mongo? I really want to work for Automattic and applied 2 days ago. I wouldn't mind helping with mongoose if it helps me get a foot through the door :)

vkarpov15 commented 9 years ago

Always happy to have more help :)

Long story short, mongoose was written at a startup called LearnBoost (same guys who wrote express, jade, stylus, etc. etc.). LearnBoost pivoted to become CloudUp, and were subsequently bought by Automattic. Thus their IP, including mongoose, now belongs to Automattic.

mgenev commented 9 years ago

Well, let me know how I can help, I'd be happy to :)

I've been watching your work for a while after you talked about MEAN and played with that for a while and put together few more stacks on its basis, the latest is this one https://github.com/mgenev/nautilus

vkarpov15 commented 9 years ago

Looks pretty cool. I haven't heard Aurelia before, what's it about? The getting started page makes it look like Angular+ES7

mgenev commented 9 years ago

That's pretty accurate. Aurelia is by Durandal's maker who was also on the Angular team too, but decided to make it his own. I find his design choices fantastic. The framework is really modern and unobtrusive, code is very clean and portable. I love it.

vkarpov15 commented 9 years ago

Ah so Aurelia is Eisenberg's new project? Might be worth investigating if Angular 2 somehow turns out to be a flop.

mgenev commented 9 years ago

Here's a side by side comparison http://blog.durandal.io/2015/05/20/porting-an-angular-2-0-app-to-aurelia/

this is my favorite part:

There's not a single reference to the Aurelia framework in any of the JavaScript. It's all just plain ES2015. No framework intrusion. That's a big contrast to the Angular version.

vkarpov15 commented 9 years ago

An interesting argument. As a long-time Angular guy I'm starting to be intrigued by moving away from 2-way data binding and toward a more flux-style one-way flow, which is exactly what angular 2 is all about. However, the point he makes about SVGs is a pretty big deal - angular 2 syntax not working on SVGs is pretty bad