In reply to Greg Brown.

From the perspective of Gutenberg, this was a major consideration in taking an initial exploration with React. While any framework will most certainly claim to have a commitment to backwards-compatibility, from an external point-of-view it’s a matter of risk and observations of history. React and Vue are both successful in offering migration paths for version upgrades (react-codemod, vue-migration-helper). React had a slight edge in targeting a small and focused API surface area, embracing the JavaScript language in its templating, and having a deterrent to drastic changes via Facebook’s own production usage (at least not without a long and well-defined deprecation path). There were compromises here in losing out on Vue's fantastic onboarding experience, which we hoped to remedy by simplifying the block API as much as possible, minimizing the role of React to only representing a block's edit and save representations.

Preact is in a unique position of following React and serving as a distillation of its core concepts. The project has been mostly successful in avoiding the need for an upgrade path (never implementing PropTypes, createClass), but it’s still an open question as to how closely it stays in sync with the upstream React project, and whether the associated risks (fewer direct contributors, likelihood of sustained maintenance given the perceived fate of the similar Inferno.js project) are worth taking on.