I replied directly into the article, but one thing bugs me... the two demarkations for ng2+ being "Component structure" and "typescript" are both possible with React. Though I don't care much for typing, it's an option.
Beyond this, I feel the statement that React doesn't match the ecosystem of Angular disingenuous at best at this point. React works with the rest of the js/npm ecosystem, with far more third party component options today, let alone regular js modules beyond react.
I can't help but think this will be incredibly awesome and horrible at the same time. My biggest hope is this will allow for DRM to be removed from the browser itself and used via WebAssembly where necessary.
However, I also feel sad, because I can see a rise of *language to wasm compilers and the resulting limitations of discovery. One of the greatest things about the web has been the ability to deconstruct what JS is doing... even minified is still more understandable that wasm will be fore most.
I started playing around with yarn yesterday, it's definitely a bit faster for repeat installs, and the shortlist for outdated is nice too. Not 100% sold as to if I'll stick with it though.
No, I'm not opposed to the Class-oriented interface though... I think it makes writing stateful components easier. I'm pretty pragmatic about it, I'd rather have clean code that makes sense than subscribe to dogma. That said, I do tend to favor the functional render component most of the time.
I mean direct render method components... you don't have to inherit from Component or use the legacy method at all if you don't want to.
export default MyComponent(props, context) {
return <div>Hello {props.name}!</div>
}
I happen to like React because it's functional representation all the way down, and I tend to like JSX in my JS vs. weird DSL in templating system in my HTML referenced with JS. But that's just me.
I can see the appeal of Vue.. and frankly, can see the appeal of Polymer as well. However, I find React feels better when I've used it.
I mean direct render method components... you don't have to inherit from Component or use the legacy method at all if you don't want to. export default MyComponent(props, context) { return <div>Hello {props.name}!</div> }