I don’t feel nearly as worked up as some people about this topic if only because everything MDG has done has been pretty well done. Looking back @vjau comment particularly struck me though:
I would re-arrange and add to that to make it:
Blaze + Tracker/ReactiveVar-Dict + Minimongo + Pub/Sub/MergeBox + Methods + UserAccounts + Fibers + Mongo + MeteorBuildTool
I do think the core reason for some of the arm flailing is that people intuit that if MDG themselves were going to build a future-proof app much of this would not be used. Taking them 1 by 1:
- Blaze - the options moving forward here are pretty well established… Blaze continues to be a good option if you are prototyping or making a fairly simple app. For more complex apps you have Angular or React.
- Minimongo - kinda fits with Blaze in that its useful for prototyping and maybe even medium sized apps especially if Mongo is the DB for you but Redux is the Apollo store and has much of the developer momentum
- Tracker/ReactiveVar-Dict - While tracker is a standalone component it seems that using Blaze is nearly a must to get a lot of value out of it - certainly it can come along for the Apollo ride as described briefly in an apollo issue, but I do think its generally unclear how to do a trade-off analysis today of when Tracker is a great fit
- Pub/Sub/MergeBox - Apollo appears to targets the deprecation of this tech with laser precision. @sashko’s Medium article covers the updates to the GraphQL spec, of which I’m sure Apollo will be fast to integrate. Optionally being able to use stream, live, and subscribe adds more flexibility than pub/sub ever had or every will have as far as I understand.
- Methods - methods are just a good RPC system. I’d be curious to hear if anyone thinks they have significant downsides and/or when to use them vs. other options
- UserAccounts - ah good ol useraccounts, IMO one of the original pieces of Meteor that really gave a Eureka feeling. Unfortunately its seems to be a stranded island of functionality with the new Meteor direction. It is heavily dependent on the UI stack choice you make and it’s unclear to me what MDG’s support for it will look like moving forward. They show you how to wrap the Blaze component with React to add it to a React centric app but to me it feels a bit crazy that I would have Blaze in my project just to use a UserAccounts package that isn’t keeping up with the rest of Meteor. If anyone know of further info on this subject I’d love to get pointed in the right direction.
- Fibers - I share the opinion of @SkinnyGeek1010 “Fibers on the server has made my life easier for years. Today async await is just finally becoming an alternative, though it’s still not quite as nice as fibers.”… I get the occasional headache when trying to integrate and wrap other NPM packages but otherwise I quite like Fibers… having said that I do think enforcing the use of Fibers is contrary to the new Meteor goal of being applicable to a wider swath of developers. They two don’t mesh but as far as I know I’ve never heard any thoughts or opinions on the Future of Meteor in this area from MDG
- Mongo - mongo is as mongo does. If mongo is a good fit for you then there is no pretense of losing it, if not Apollo will be your savior
- MeteorBuildTool - The Meteor build tool is a giant question mark to me. 1) It may get faster but doesn’t appear it’ll ever be as fast as some of the other build tools out there 2) It’s essentially 0-config is one of its major pluses and a huge benefit for beginners but Blaze didn’t survive on that strength alone either 3) If you can get past the setup other build tools are more featureful 4) It’s fundamentally incompatible with some other build tools - doing a react-native development or want to in the future? then the React-native packager is your build tool
I’m sure much of the MDG opinion on the future of these technologies has been said in talks, in forum posts, in chat logs, etc… but its hard to keep up and keep track of all of that. This is where I think at least of the frustration comes from. I for one would love to see a longer blog post from MDG that discusses the parts of Meteor and their outlook looking into the future.