React is a framework that was originally created, and is maintained, by Facebook. This provides a huge weight on the scales when choosing it for a project. It gives React a sense of stability that many new frameworks lack.
Facebook maintains the project The high volume of adoption and continued growth mean it will be easier to find competent React developers as well as help and outside components.
The adoption of JSX allows for the structuring of components that will then compile into JS React when running on the server, can make for more SEO friendly web pages than other JS frameworks, as the only thing seen by the client at that point is the generated HTML page(s)
React Native can provide a nearly seamless mobile experience to pair alongside your React application for the web
- Angular.js 2
Pre-rendering of content on the server can allow for better SEO as well as faster browsing
The Angular project is built on years of experience, from Angular to Angular 2 and well beyond.
Angular 2 is full of useful features such as dependency injection, templates, forms, and more.
Because Angular is maintained by Google, users can feel confident that it will be around and used for a long while.
My thoughts on Angular 2 are very similar to my thoughts on React. If a user needs a large, feature-filled platform, it’d be hard to go wrong with Angular 2. There’s a ton of useful content here. Conversely, you have to accept the heavier weight of this platform and the fact that it’s mostly maintained by a powerhouse company like Google, who could, in theory, stop supporting it any time, although that seems very unlikely.
Vue has an incredibly small file size, making it easy to include in projects without creating a slowdown.
Vue has a relatively easier learning curve than some of the bigger frameworks, and fantastic documentation to assist those new to JS frameworks and veterans alike.
It is easy to integrate into other applications and languages. For example, Vue.js bundles with Laravel and couples nicely with it to create frontends for Laravel applications.
Vue uses an HTML-based templating syntax, allowing developers to write components quickly and easily.
Meteor.js is a “full stack framework”. The fact that it is full stack means that you can control everything from the database to the UI with the same language and the same framework, and it is one of Meteor’s primary advantages.
Meteor is a full-stack framework, which allows developers to learn one tool, and use it for almost everything in their application. It also makes it an exciting proposition for new developers who are aiming at full-stack positions or projects, as they can get productive faster with Meteor.
Meteor ships with a variety of useful “smart packages” readily available for all manner of uses, and allows the inclusion of custom packages as well for those who wish to create their own.
The Meteor community is very active and engaged, providing community support on the forums, building and maintaining packages for public use, etc.
Meteor almost doesn’t belong on this list. It can be used to build your app’s UI, but it can also be used in conjunction with a UI-specific framework (with Meteor just for the backend). However, it can stand on its own as needed, and if you want to have a single, all-inclusive framework that will handle everything in one box, Meteor is the way to go.
Ember.js is focused on getting things done, and getting them done quickly. Ember is a more opinionated framework, funneling developers into best practices for the platform. This makes it much easier for projects to get started, but some may chafe at limitations. It also provides several external tools to help developers along.
Opinionated best practices make Ember very easy to build with – as long as you’re willing to follow Ember’s structure. If you will be unable to do so, Ember may not be the right tool for your project.
The command line tools package “ember-cli” opens up a whole new world of useful tools to add to an Ember app developer’s toolkit.
The Ember Inspector allows for easy inspection of Ember objects in your browser’s developer tools. This can be used both while developing and while debugging issues.
Ember.js is a great tool for rapidly getting your application into production, and for dealing with problems and troubleshooting issues. It isn’t the only framework with an inspector plugin or a CLI, but their inclusion along with its rigid best practices allow for a great quick start experience.
The maturity of the platform means that many issues have already been discovered and solved, and its community resources and support are solid.
Backbone’s approach to application structure is minimalist. It is incredibly lightweight, at a smaller file size than most frameworks on this list. It also is providing the bare bones of a framework, allowing the developer to build what they need off of it.
It forces no templating engine, leaving that up to the individual developer. However, it does have Underscore as a dependency, allowing that to be the easiest default choice for templating.
Backbone is declining in popularity, perhaps due to its age and minimalism, but it is still a relevant and powerful tool for the right needs. It is reasonably easy to get a handle on, and if you need a framework that will allow you to build your application the way you see fit and provide you with a core to build off of, as the name implies, Backbone is a solid choice.
Aurelia is a framework composed of smaller modules, allowing developers to pick and choose the pieces that work for them, or to use the framework in its entirety.
Aurelia has a modern take on app development, with its modular infrastructure giving developers many useful options without being overwhelming.
Aurelia has a relatively low learning curve, giving developers the chance to accelerate their time to writing productive code.
A simple MV* architecture is employed, with conventions to prevent unnecessary configuration. This may feel restrictive to some developers, while others will welcome the streamlining.
Polymer is a lighter weight Google-backed framework, with a hard focus on standards compliance.
As with the other frameworks which are projects of large companies, the fact that Google maintains polymer is mostly a good thing. It means lots of support and ongoing development, but it also may feel as though it comes with strings or reliance on a giant, to some developers.
The standards-compliant focus helps to ensure longevity for your application, as well as compatibility across other apps or platforms.
Polymer works well with Progressive Web Apps, which is an increasingly significant focus for developers as they hone in on connecting the mobile experience with that of the desktop user.
The polymer also has a lightweight footprint, which makes its load times much better than the larger frameworks.
The polymer provides an excellent alternative for those that want a lighter, more easily integrated framework while still relying on a platform that the big players back. With Google behind it, Aurelia can gain much more of the market share than it currently has, while still maintaining a lighter touch than its older competitors.
With a file size of 8kb (compressed), Mithril’s footprint is one of the lightest out there, allowing for lightning-fast loading.
Mithril has a great set of guides and docs to get started, and they estimate that a developer can get through the quick start in a mere ten minutes.
Mithril has cut out the cruft in order to get to that size. They show you how to do authentication, file uploads, to use ES6 or JSX – features that a large portion of their users will actually want.
Facts and Conclusion.
In any case, this set of frameworks should give any developer at least a recommendation or two that meet their needs, and get to building their frontend application!