Rob Eisenberg on Aurelia and how it stacks up against Angular 2 and React
Sandeep Panda
1394

React has nothing to do with HTML. As we look at packages like react-native, react-art, react-canvas, and react-three, it’s become clear that the beauty and essence of React has nothing to do with browsers or the DOM. JSX is optional and this is only a syntactic sugar for a pure JavaScript function (namely React.createElement). Comparing a library to a full blown framework is like comparing apples to pears. If you want to compare Aurelia try compare it with another full blown framework.

E.g. try to compare it with Cerebral (http://www.cerebraljs.com/). It has a router (even more powerful than the others because it has nothing to do with any view or template). It has a Chrome extension providing very nice debugger with time travel (is there anything close to that for Aurelia?) It has very powerful, DECLARATIVE workflow based on action chains and function-tree. Nobody else have such powerful feature. It works like a declarative reasoning tree. See https://www.youtube.com/watch?v=-hKCYFPhUSs.

Cerebral can use different UI libs, not only React but also Snabbdom (recently adopted by Vue 2.0) or extremely fast - Inferno. I doubt if Aurelia can work faster than Inferno.

And last but not least, Aurelia (and Angular) are modular, but do not scale. With enough big code, keeping a mutable local stage inside modelviews leads to mess and big complexity. I used Durandal before, and the synchronization between many decoupled modelviews was a real pain in ass. (To be honest, the same problem has React if it is used on wrong way; I mean if you keep a local state in every component Just don’t do it. Use Cerebral. :)