After intensivly playing around with meteor for about 3 weeks I want to give some constructive feedback:
Meteor is great and I am winning time using its frontend features,
BUT I am LOOSING time having to manually manage data-dependencies.
As data-handling is so important and a core-part of every webproject,
there really should be a METEOR CORE SOLUTION for:
- defining models (database schemas) and their relationships (foreign-key, 1 to m, m to m) and their embedded related-data
- putting business-logic-methods into the models
- making ORM-style updates to the database via model-methods (
model.value = x; model.save())
- keeping a model’s data-relations in sync with each other (in mongodb style, thus embedding related data),
- using a schema to create forms
- automatic schema/data migration. I am just thinging: Damn, how much time will I loose manually writing my migrations?
Yes, we have SimpleSchema, Collection2, Autoform, CollectionHooks, TemplateHelpers, Astronomy and Orion,
BUT: even with combining those apps I end up with a rag rug. Leading to spaghetti-code with functions and responsibilites all over the place. And this rag rug is not really production ready.
PLUS with 3rd-party apps you never know how long they last.
PLUS the community really is loosing energy working on those different projects.
I mean: just like @jagi writes in his introduction to astronomy,
ORM stuff like this should all be included in Meteor CORE:
var post = Posts.findOne(); var authorOfPost = User.findOne(); var authorOfComment = User.findOne(); var comments // Increase votes count by one. post.setAuthor(user); post.voteUp(); post.addCommentBy('comment to post', authorOfComment);
Yes, Meteor is far ahead when it comes to websockets and realtime,
BUT you should also work on the backend.
Please have a look at how Django handles this - it is PERFECT! (https://docs.djangoproject.com/en/1.8/)
- it has a perfect model-layer
- forms can be generated by models
- it has a perfect production-ready and automated migration system
- it makes it really easy to switch out the database without having to change a single line of code
Anyone else here having similar toughts?