Full support for Typescript built in
Ranked in these QuestionsQuestion Ranking
Pro Provides built in support for UI widgets
Huge amount of widgets available, also easy to build custom widgets by extending the available components.
Pro Professional support available
If you buy a license you can get professional support and premium forums. Support has short contact times and solutions are of great value.
Pro Well documented
ExtJS' documentation is very detailed and helpful. All concepts and parts of the framework are thoroughly explained.
Pro IDE plugins available
Plugins are available for JetBrains, Eclipse and Visual Studio.
Pro Easy reusability of code
By using the packages and custom components, code can be reused very simply.
Pro Forum support
Forum support is available.
Pro Flat learning curve
Pro Excellent design tools
Eg: Sencha Architect.
Pro Developer friendly integrated tools
Sencha Cmd, Sencha Inspector and some IDE plugins etc., are the tools which helps developers to speed up their development.
Pro Out of the box Typescript support
Full support for Typescript built in
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 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 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 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 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 Full commercial support
Aurelia is officially backed by Durandal Inc. and has commercial and enterprise support is available.
Aurelia.js consists of modules that can be used as a full framework or separately.
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.
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 Powerful helper CLI available
The CLI helps rapid creation of projects with generators, building, deploying and hot reloads. Webpack should be coming soon.
Con Large footprint
The library is almost 500Kb in size hence significantly affects your page load time.
Con Expensive licensing
ExtJS is free for use in open source projects, but you have to use the unstable version which is riddled with bugs. Furthermore, to build a project (even if it's open source), you have to buy their proprietary tools.
For commercial projects, it costs $665 for a license.
Con No real support
You only get a limited premium questions that could be answered via the support and if the issue is too large then you might lose all your credits (it has a credit system for support) in one question.
In addition the replies in premium forum are sometimes less thought of than you would get in stackoverflow.
Con Completely unreliable with regard to licensing and pricing
That ExtJs is expensive is not the problem, but what they did is started completely free, then switched the licensing model when they had profited from the community. Also, they suddenly switched from a single user license to a minimum of 5 users.
Con Lots of bugs
The community is very small and this is because the licencing is very expensive. Therefore not many people to test the framework and give feedback in order to fix.
They try to do everything in house which means that a small company (linkedin shows about 100 employees) tries to imitate something very large.
The scaling problems lead to lots of bugs and instability.
Con No web-workers
ExtJS does not take into account the asynchronous nature of todays web browsers where you can do heavy stuff on the background.
Con Tooling is poor
They had a GUI architect tool, but that tool never was up to date with the current framework version. Now they even seem to have abandoned the whole architect app. Also, to build a ExtJs app you have to use their tool (and then you have to pay, from that moment ExtJs is no longer GPL). But this tool also has lots of bugs.
Con Steep learning curve
ExtJs is a very opinionated framework. You have to do it the ExtJs way or it's the highway. So, a lot of time, things in your own opinion doesn't make sense or don't work in the way you expect it.
Con Quantity yes, quality no
There is a large amount of source code that can be useful and indeed all the samples works flawlessly.
When you try to get into more complex scenarios you will find yourself in situations where things just do not work as expected. You will have to do manual work.
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.