Every few months I loose hours surveying the javascript application framework landscape. Kevin O'Shaughnessy wrote a synopsis of a 2016 talk by Rob Eisenberg and updated it in 2018. That makes this wiki page 3rd hand information. medium
Do not bother using Angular 1 anymore Strongly consider Angular 7 if: * You are a fan of TypeScript or have developers with TypeScript experience * You want to write large, very high performance applications * You are not very purist about the JavaScript language — you do not mind learning proprietary directives and other Angular concepts * You don’t mind taking a bit more time to learn an advanced framework * You don’t mind your users downloading a larger than average file * You do not want to fall behind the technology curve (it is being regularly updated in a way that makes it easy to stay current) Strongly consider React if: * You are writing a medium or large scale app and are concerned about maintainability * You prefer to make your own specialized decisions on how your software works — you enjoy investigating and evaluating new technologies * If you write a bug you prefer to fail fast and early * You do not mind writing a bit more code as long as it clear and understandable * You are not religious about web components, as React’s virtual DOM does the job well enough * You are not frightened by the patent clause Strongly consider Ember if: * You are not particularly interested in chasing the latest shiny things; you just want something that is proven and reliable * You don’t want to waste time being overwhelmed by the number of possible solutions to a problem — you want an opinionated framework that gives you standardized and high quality solutions to the common problems Strongly consider Polymer if: * You love Web Components * You love minimalism * Your users, or most of them, are using very modern browsers * You want the minimum “startup tax” on your users — the Polymer file size is tiny Strongly consider Aurelia if: * You want a framework that doesn’t get in your way too much * You are a fan of Web Components * You appreciate a clean syntax * You consider standards compliance an important consideration * You only hire good developers, so you are confident they will be able to learn the framework quickly enough In the comments of the article, he also suggests serious consideration of Vue.js, though without the level of detail or contextual recommendation.
.
After all of this, I prefer polymer, at least in theory. Their sales pitch matches most closely what I want. I want to write a close as I can to what browsers offer directly. Consider Angular1 before there was an Angular2. And Backbone.js. And jQuery. More directly, I have been through the challenge of upgrading Rails 2 to Rails 3 only to have to upgrade again to Rails 4 and 5. I want less work in my future aimed at keeping up with the framework I chose years before.
However, the examples for Polymer still advocate for me sub-classing their base class. That is exactly the step that has entangled my code in the previous examples. Even Polymer has already been through a few versions.