In the world of front-end development, things are a bit complicated. New frameworks appear all the time, which provides both opportunities and challenges for developers. Forget about tea and cookies, learn new stuff if you want to catch up with the changing world! The situation has become better in the past few years but it's still confusing. Polymer, Aurelia, Sencha, Webix and so on - what's behind all those names? How and when should you use them?
Today we'd like to create a shortcut for you - here are the top 5 popular JS frameworks based on the experiences of our frontend developers.
After its release in 2016, Angular has been gaining popularity ever since. It has multiple versions and vast community of developers. It uses TypeScript as a core language, which makes it a good choice for developing huge enterprise projects thanks to TypeScript being reminiscent of C#.
As for AngularJS advantages, coding and testing are really fast and all the changes you make in the backend will instantly appear in the user interface, so it's really easy to see where the things went wrong. Developers also like the fact that Angular has everything right out of box, so you can learn its features once and use them for years. The first version of Angular is good for single-page applications, while the second edition is made to handle all types of applications - from mobile apps to enterprise-class solutions.
Aside from rainbows, there are a couple of rainy things. Angular is heavy in all meanings. It needs a ton of hardware resources and a lot of time to learn it, because it's really complex. If these pitfalls don't scare you - go ahead and pick it up, especially if you have to deal with enterprise apps. You won't be disappointed in Angular.
Now let's talk about the other side. React.js was pretty mind-blowing back in the days of its first release in 2013. Rendering technology was truly innovative and game changing at some point. Long time ago in a galaxy far far away we already wrote an article about what is React js and its key advantages. Check it out for more detailed insights from a senior frontend developer.
React is easier for learning and usage than Angular but it is pretty difficult on its own. The possibility to integrate React to any architecture and to choose additional components is amazing but it is also challenging sometimes. With over 1000 Github authors you have to constantly learn new things about it. Still, it's not as hard for learners as Angular.
You can use this library for all types of applications. You can even develop Facebook clone now, because React became open-source with its latest update. Goodbye, copyright issues. We won't miss you.
Imagine React.js and Angular have a baby - that's what Vue.js in a summary. It has the best features of React and Angular 1: the two-way data binding, server-side rendering, Vue-cli (scaffolding tool for quick start) and optional JSX support.
What's really interesting about Meteor is that it was considered as a stillborn framework. There wasn't much info about it since its release in 2012. It became popular recently and it continues to build its community.
It's not really correct to call it a framework. Meteor is a full stack platform with server, database management and tools for backend and frontend development. Nevertheless, it's best suited for real-time apps like Slack, Viber, etc. I bet it is called Meteor for a reason. All the changes in the database are transmitted to the UI immediately without latency caused by server reply, different languages and so on. Also it covers all development cycle which is a handy feature.
It uses Node.js as a foundation and it used its own packages and library repository - Atmosphere.js. You can use npm since 1.3 update but not all packages switched from Atmosphere to npm yet.
Want to develop real-time chat or messenger? Give Meteor a try!
What's also interesting, Ember actively uses code generation utilities which makes developers life easier. Rails influenced Ember's app architecture a lot, but the creators switched to the component approach with the latest update.
Since its first release in 2011 Ember gained massive online community, tons of best practices and continues to get regular updates, so it's pretty user-friendly framework. Go ahead and give it a try if you are about to create something compound, deep and challenging.
Now you know
P.S. Special thanks to Stanislav Litvinov and Andrey Bakuta for the information for the article. You guys are amazing!