Full support for Typescript built in
Ranked in these QuestionsQuestion Ranking
Pro Out of the box Typescript support
Full support for Typescript built in
Pro Conventions over configurations
Configured to give you the most common use cases by convention, which means you only need to change the default configuration for edge cases. This means that for normal cases far less boiler plate code has to be written.
Pro Out of the box ES6 support
Aurelia includes native support for ES6 and even comes with a Gulpfile which helps with transpiling ES6 code to ES5.
Pro Good binding system
Clear, intuitive and HTML/SVG compliant binding syntax.
Default binding => value.bind
One Way binding => value.one-way
Two Way binding => value.two-way
One Time binding => value.one-time
Pro Allows developers to build their application however they want
Aurelia is extremely unopinionated and was designed to be highly modular. This gives the developer the freedom to develop their application however they want, without forcing them in paradigms or rules predefined by the framework. Likewise, any of the individual components can be swapped out if so desired.
Pro Standards compliant
Aurelia developers always try to keep within existing and emerging Web Standards, making it easier for developers to follow best practices in web development.
Pro Variable binding helps with self-documenting the code
Pro Easy to learn
Learning aurelia basically means learning EcmaScript and HTML, since aurelia is designed for standards compliance. Also, aurelia embraces upcoming ES language features by convention, such as ES class decorators for dependency injection, encouraging clean architecture and future-proof code.
Pro Great documentation
One of the most crucial pieces of any new technology or framework is the documentation. At present even though Aurelia is pre-beta, the documentation is pretty complete. There are code examples missing and whatnot, but for the most part it is concise and makes the main parts of the application easy to understand.
Pro Agnostic code
Most of the code you write is Aurelia-agnostic. That way you can easily test it, switch to another implementation and make it look clean (business oriented). Even the HTML.
Aurelia.js consists of modules that can be used as a full framework or separately.
Pro Data binding choices with sane defaults
Aurelia defaults to one-way data binding, alining with conventional wisdom. However, there are times when two-way data binding proves useful, such as binding an input widget with a view-model. Aurelia makes two-way data binding available to developers and uses it by convention when appropriate.
Pro Plays well with other frameworks
Aurelia can be used alongside of React and Polymer, since it is designed for interoperability. In practice, this means Aurelia developers can use React components by including an Aurelia custom element:
It also works well with Polymer, since they are both based on the WebComponents standards:
Pro Full commercial support
Aurelia is officially backed by Durandal Inc. and has commercial and enterprise support is available.
Pro Powerful helper CLI available
The CLI helps rapid creation of projects with generators, building, deploying and hot reloads. Webpack should be coming soon.
Pro Growing community
The Aurelia community is growing at a great pace. Still doesn’t rival the big players line Angular or React, but the answer to an Aurelia issue is a quick question away on their Discourse.
Pro Extremely simple to implement.
To get started is extremely simple. It has a low learning curve.
Pro Seems to be quite stable
Even the most complicated GUIs are bug-free most of the time.
Pro Great support from the webix team
The company behind webix is really quick in answering any questions you have on their forum or via email.
Pro Webix Jet
The webix Jet library adds all the required features for SPA development (routing, template loading, ...)
Pro A lot of widgets
Webix is one of the most extensive UI component libraries, second only to Sencha ExtJS. Not only considering the number of widgets, but also the API methods for manipulating these widgets.
Con No big success stories yet
There are no notable big web products build with aurelia yet
Con Needs more support from the community
It would be great to have a lot of plugins made by the community, or video tutorials from experiences when using it. Hopefully in the near term future.
Con Two-way data binding is often considered an anti-pattern
Two-way data-binding means that a HTML element in the view and an Angular model are binded, and when one of them is changed so is the other. One-way data-binding for example does not change the model when the HTML element is changed.
This is a rather controversial subject and many developers consider two-way data binding an anti-pattern and something that is useless in complex applications because it's very easy to create complex situations by using it and being unable to debug them easily or understand what's happening by just looking at the code.
Con Not modular
The library is not modular (except for some additional more complex widgets). If you only need a few widgets, you still need to include the entire library.
Con Commercial license
It's not free for commercial applications.
Con Not very popular
Not really a reason to not recommend it. But it has still a small user base. It deserves a lot more attention.