Nowdays the Blaze support from MDG is beginning to lack (considering they recently stated it’s up to the community to add Apollo support), as well as the tutorials aren’t quite as Blaze-friendly as they were before (they don’t really show too much of the ‘magic’ anymore), I have been wondering, why not integrate ViewModel in to Blaze by default?
Since Blaze is becoming public, could even mean that Blaze itself could be tweaked for some tighter integration with ViewModel, if users are behind this idea.
The reason I thought of this, is because when training my new employees, I noticed that ~75%+ of the problems they were having, were related to Meteor’s way of manipulating the DOM/rendering, or them trying to fiddle around with JQuery to get things working properly. Then I taught them how to integrate ViewModel, and it resolved all their problems!
The only possible issue I could think of regarding this is that it would be a slight increase in learning curve. But let’s be honest here - for the Meteor 1.3 tutorials to be truly friendly to new users (and not experienced full stack dev’s) they need to be re-written anyway (my new employees have confirmed this, they are comfortable with Meteor now but still think the current tutorials are not very useful at all) it would be just as easy to teach users how to use ViewModel from the beginning rather than Blaze alone.
I personally love the idea, I think Blaze is very underrated, and ViewModel perfectly fits the “Meteor Way” of doing things. It’s reactive just like Meteor, and ViewModel pretty much gives the best parts of Angular to any Meteor developer in a very easy to implement way, as well as a component-style architecture - all they need to know is simple HTML and they will be up and running in minutes.
I believe the overall learning curve of Meteor will be lessened as well, as new users won’t need to worry about learning separate functions for onCreated, onRendered, Helpers, etc… and users can do more “traditional” programming when working with direct variables in their view, rather than helpers. Less code, less places to make errors, less debugging - sounds perfect for new users, and most experienced users who have looked in to ViewModel understand the benefits anyway.
Blaze + ViewModel I think will have much more potential for growth in to the future, rather than Blaze alone! It’s not just quick & easy to use with a smooth learning curve, but I believe the functionality can truly compete with the other options out there in most situations.
Any thoughts on this?