Here’s the Deal
Slant is written by a community helping you be informed. Tell us what you’re passionate about to get an awesome personalized feed.
Pro Can be used with any front-end stack
Vue can easily be integrated with other front-end libraries. This makes it an extremely versatile tool and it's easy to fix its shortcomings or missing features by just plugging in another library.
Pro Lightweight
Vue.js weighs in at 16kb min+gzip.
Pro Single file component
Very useful.
Pro Easy to reuse components
Since every single UI component is created independently in JavaScript, it becomes very easy to reuse them throughout your app without having to re-write them.
Pro Server side rendering
React can render it's components and data server side, then it sends those components as HTML to the browser. This ensures faster initial loading time and SEO friendliness out of the box, since it's indexed as any other static website by search engines.
Pro Virtual DOM support
Instead of relying on the DOM, React implements a virtual DOM from scratch, allowing it to calculate precisely what needs to be patched during the next screen refresh. This is orders of magnitude faster than fiddling with the DOM itself.
Con Heavy on memory
React's virtual DOM is fast, but it requires storing elements in the virtual and real DOM increasing memory usage for the page. This can be a real problem for single-page webapps designed to be left running in the background.
Con Verbose
React gets a little verbose as applications get more complicated with more components. It's simply not as straightforward as simply writing HTML and JavaScript would be.
Con Large file size
React's react.min.js is 145.5KB in size. It's much larger than some other libraries that offer roughly the same features and it's almost the same size as some MV* frameworks such as Angular or Ember that offer more features out of the box. Although, it should be mentioned that sometim...
Pro Support for a composable component oriented architecture with directives
Angular uses the existing HTML structure and builds on top of it instead of requiring you to learn a new templating language. Because it's just vanilla HTML, it is more familiar, and easier for beginners to learn. Directives let Angular know which HTML elements are under its control, and how to...
Pro Huge ecosystem of third party components
Angular is an extremely popular JavaScript framework. Because of this, developers have developed a myriad of components which can be downloaded and integrated into any Angular application.
Pro Huge community that is quickly growing
Angular has the largest community out of all Javascript MV* frameworks and there are a lot of tutorials and guides out there for new and old users alike.
Con Steep learning curve
Angular isn't a simple framework, and because much of the magic goes on behind the scenes, it isn't easy to go from simply using the framework to being able to actually change how it works and extend it.
Con It is almost mandatory to use Typescript
Although ES standard can be used, most of the documentation and resources are with Typescript.
Pro Based on web components
Web Components are a collection of specifications released by W3C as a way to reduce the complexity of web apps by creating reusable components. Browser support is currently poor for web components, however Polymer is developed to make web components compatible with modern browsers.
Pro Various basic components
It provides a base component.
Pro HTML markup is not string
HTML markup as it can be a non-string.
Con No server-side rendering
Polymer does not support server-side rendering. This results in higher loading times, more HTTP requests and it's not very SEO friendly, since search engines have no way of indexing a page if it's not rendered in the server.
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.
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 consi...
Pro Gives you the freedom to implement views however you want
A lightweight view class is provided but there is no default templating method implemented. Because views are minimal it allows for much more freedom to implement views however you would like, and because of this freedom it's possible to write views to more uniquely adapt to a problem. User in...
Pro Can be combined with any library you want
Backbone can be combined with any library of your choosing, giving you the ultimate flexibility in creating customized solutions for unique projects. Even the only two backbone requirements, jQuery and underscore can be replaced with equivalent libraries like zepto or lo-dash.
Pro Large community
Backbone has existed longer than most frameworks, and has a large following of users and projects using it as a framework.
Con Requires more coding compared to other frameworks
Because many features are not provided out of the box, you either have to write more base class code to get those features, or find a plugin that provides them in a way you like. It does not provide much structure either, things like memory management must be kept in mind by the developer, also t...
Con Can easily lead you to spaghetti code
Heavy event-binding can lead to unmanageable spaghetti mess. BB tempts users to overuse it for no reason.
Con No data binding
Backbone does not have data binding support. However, there are some libraries that can be implemented in order to have data binding in Backbone. Such as Epoxy
Pro Clean syntax
Mustache provides you with a clean and easy to understand syntax. Having a syntax that is readable is always a huge plus, since this means easier maintenance and code readability in the future.
Pro Available in lots of languages
Available in a wide variety of languages including Ruby, JavaScript, Python, C++, Scala, Go, Julia, Swift and more. See the full list here.

Pro Lightweight
Mustache is easy to deliver. If you need more features down the road, you can switch to handlebars, which is a superset of Mustache.
Con Basic tasks are difficult
Mustache js's attempts at making some things simple makes them so easy that they're almost difficult. That is the case with some basic tasks like figuring out how to apply css to shade odd/even rows on your template based content.

Con Bested by Handlebars in many ways
Handlebars being an extension of Mustache bests it in both speed and power. It adds additional features to Mustache which make writing templates easier and faster. Benchmarks have also shown that Precompiled Handlebars renders in about half the time of Mustache and the rewritten Handlebars (curre...
Pro Extremely fast
Marko consistently outperforms other alternatives in code benchmarks, both on rendering speed and compilation time.
Pro Custom tags
Custom tags provide a simple mechanism for embedding more complex components into a template by extending the HTML grammar with support for new tags. For example: <div> <say-hello name="World"/></div> Custom tags are easy to create since they just map to a JavaScr...
Pro Streaming
Streaming allows progressive HTML rendering and reduces time to first byte.
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.
Con Large footprint
The library is almost 500Kb in size hence significantly affects your page load time.
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 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.
Pro Great browser support
CanJS supports all modern browsers and IE9+.
Pro CanJS can be used with any other library
CanJS is a collection of individual libraries, each separately available as npm packages. It's easy to use just what you need.
Pro Real time support
CanJS's model layer (can-connect), support real-time updates to lists without adding any additional code.
Pro Fast rendering
Update of single element, no diff like react.
Pro Compact and easy syntax
CanJS has an easy to learn syntax.
Con Hard to find resources outside of the official ones
Since CanJS is not very popular, it can be hard to find learning resources, tutorials, guides or any other resource that may help development.
Pro Small footprint
Blocks.js is just 16.5KB minified and gzipped. So it's pretty small.
Pro Modular structure
Apps developed with blocks.js are modular in structure and make use of reusable objects. This makes these applications very maintainable.
Con Relatively new
Blocks.js is a relatively new library. It doesn't have much support and there re not many people who use it. So if you run into any problems it would be hard to get solutions.
Pro Lots of components/widgets
Library contains UI components like Datagrids, Forms, Tabs, SideBars, Toolbars and more
Pro Small library size
Only two files need to be included 1 .css and 1 .js, together they are only 365 kb. regarding to amount of components it is very small.
Pro Easy and clean API
any component is well documented and have an easy api to access validation, dataloading and handling user events.

Pro Pretty light-weight
Inferno weighs in at 9kb gzipped, which is light-weight.

Pro Fast performance
Inferno is one of the fastest UI libraries around and widely considered the fastest.

Pro Modular
Use it however you want in a framework of your own custom design. When things change in the industry, swap things out instead of being locked in by someone else's design.
Con Some React components may not work with Inferno
Inferno and React have different public and private APIs. If 3rd party components use a private API then it's almost certainly going to break when you use it with Inferno. Once React Fiber is implemented, even libraries that are currently working will break and will not be supported by Infern...

Con Not very popular
Which can hinder one's opinion of its future, but the future of all "frameworks" is to break things into smaller pieces, so inferno very well might get used by the big names in the future.
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.
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.

Pro Small, easy to learn API
Most other frameworks either offer a huge API to deal with model and view synchronization, or defer to other libraries & plugins to cater for relatively simple use cases. Mithril's API is tiny but complete. The natural reaction is to assume something is missing, but as you build you realise...

Pro Fast rendering
Mithril's loading times are very fast. This is because it's templates are compiled first and then served to the browser and because it uses a virtual DOM. The virtual DOM is a virtual tree containing all the nodes of the real DOM, every time anything changes in the virtual DOM, Mithril does...

Pro No need to learn another syntax to write views
Most MVC frameworks use HTML templates to render their views. They are good and useful because they are easy to read and understand. But they add more complication to an app because it's practically a new language and syntax that needs to be learned. Mithril argues that separating markup from...
Con Small API can make it unsuitable for larger more complex projects
Mithril's small API and small number of functions while helpful for small projects and applications where speed is needed, can add another layer of complexity in larger more complex applications where a more extensive API is needed out of the box.
Pro Minimal syntax
http://emblemjs.com/syntax/
Pro Helper system
https://github.com/kirbysayshi/vash#helper-system
Pro Syntax Highlighting
Syntax Highlighting extensions for Atom and VSCODE
Pro Helper functions
Can write pure JavaScript helper functions to include in the view file.
Con No data binding
Flave only generates HTML.
Pro Makes it possible to handle user interaction in a readable, declarative fashion
Ractive has a concept of proxy events, which translate a user action (e.g. a mouseclick) defined via an event directive into an intention (e.g. 'select this option'). This allows you to handle user interaction in a readable, declarative fashion. on-click='activate' with arguments:
Pro Two-way binding configuration
Two-way binding can be turned off by those that are concerned it may be a source of bugs.
Pro Step by step tutorial
They have a great interactive tutorial which makes the learning process easy peasy. You will get into it within a couple of minutes.
Con Ractive's two way binding can be a source of bugs
Two-way data-binding means that a HTML element in the view and an Ractive 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 consi...
Pro Easy data binding
Knockout uses HTML5 data attributes to bind HTML elements to data objects in javascript. This allows more work to be done by the framework rather than requiring you to specify where data should be bound in the javascript. The data binding is very intuitive as the bindings are done within the HTML i...
Pro Easy to learn
Has a low entry barrier and an easy learning curve. It's especially easy to learn for beginners.
Pro Built in templating
Bindings in Knockout can also be used to control the generated structure of the HTML. There are bindings provided to allow for iteration and conditionals. The structure of the html reflects the structure of the data so iterative elements are bound to arrays in the data model. Having the HTML struct...
Con Seems to be dead
KO has been stuck at version 3.4 for a long time, and there's not a lot of community activity.
Con Can become complex once the application grows large
Knockout leaves the application structure to the developer and it can become quite complex and unmanageable in the hands of a beginner once the application grows large and complex.
Con Two way binding requires a little extra work
When allowing users to edit existing data, the two-way binding of observables means you'll need to have to save original values before they're edited, to make comparisons or revert if the user cancels the action.
Welcome to the Slant Community
Stop spending hours researching
Slant is written by a community helping you be informed. Let us know what you’re passionate about to get an awesome personalized feed.