But as Brent said, it was completely clear that Blaze wasn’t going to be developed/maintained by the highly funded team at MDG anymore and I know exactly what happens when an open source project (and all the responsibilities that come with managing one) falls into the hands of someone that isn’t making money off of the project. It eventually starts to get really hard to justify the amount of time it takes to keep the project moving forward. And the idea that everyone can chip in is usually nothing short of a dream, in my experience. Lots of people like to say they’ll chip in because they love the project, but 99.9999% of them will never do anything but file issues. That’s still helping and is absolutely fine, but those are the things we need to consider when we build our open source project on top of others. Like MDG, we don’t have the resources to focus on maintaining Blaze (or any UI framework), so we need to bet on projects that have a lot of momentum behind them and that appear to be getting better at a consistent pace. React has a paid team of extremely talented engineers behind it and tons of outside contributors that depend on it every day. Facebook themselves use it in their products. That said, there is a clear vested interest in seeing it continue to grow and succeed.
And kind of related to the last point, I think our interest in React is also similar to MDG’s in that they wanted to make their core product more attractive to a wider audience of developers by using tools that developers already know/use. There are surely thousands of devs that have used React on a wide range of non-Meteor software projects, but nobody outside of the Meteor world has used Blaze. (yes, I know it’s basically HTML/Handlebars, but you get the point)
So, will we be having this conversation again in X years? Absolutely. That’s the software gig. But is it a healthy choice to consider betting on projects that are less likely to end up being dead weight on your productivity long term? Absolutely. (just my personal opinion, of course).
All of that said, I’ve read all of the extremely long Meteor forum threads on the switch from Blaze and there are tons of reasonable points on both sides. I think it’s a complicated issue with no solution that keeps 100% of people happy. But that’s why we’re doing it incrementally. And since you can render Blaze in React and React in Blaze, it’s technically optional. Even if the entire UI was React right now, you could still render a Blaze layout in it and then every other template inside that could be Blaze. There are still some details to sort out so we can make it as flexible as possible, but the long term goal is to make it so people can use the tools that they prefer when making customizations.