top 2019 frontend frameworks

-

It's mid-2020, but it's never too late to sum things up. I was asked to briefly discuss the situation on the front-end solutions market in 2019, which I will try to do, without favouritism, I guess. No one will be surprised that 2019, like every previous one, brought novelties in frontend frameworks, but the tops of the rankings remain the same.

Frameworks

React.js, Angular and Vue.js are there for a reason, their success can be described as spectacular especially when we come across opinions of real fans maybe even followers of a given framework. They consider their chosen one to be an ideal solution and are ready to defend this position fiercely. But we know that there are two sides to every story. In order not to force you to cross the forums full of extreme opinions on your own, below I've gathered basic information, the most often mentioned advantages and pointed out mistakes of each of them.

 

Angular.js

Hisotrically, Angular.js is the oldest of the leading frameworks on the market, which lived to see there lease of Angular in May 2016. It was initially supposed to be its version 2.0, but finally Google decided to introduce it as an individual entity, which is being developed to this day, opposed to the original. Angular is distinguished by its main implementation language, which is TypeScript, which is its most frequently indicated advantage. An additional advantage of Angular is the MVC architecture (Model-View-Controller) allowing better data management, separation of logic from the UI layer and more optimized handling of requests coming from applications, which results in great scalability. The construction of the individual components is clear and simple to implement - style sheet, layout and logic files are separated, making them easy to understand. The disadvantageof Angular is that new versions come out relatively often, so projects created with its help require frequent updates and maintenance. For new developers, the attempted entry is quite high due to the variety of structures (Injectables, Components, Pipes, Modules, etc.). Also programmers often complain about lacks of detailed documentation on the latest versions.

 

React.js

Comparing google trends over the last 10 years, we can see that in December 2018 React.js has outstripped the previously unrivalled Angular in popularity and continues to do so. This JavaScript programming language library published by Facebook in 2013 has become very popular due to its availability. This advantage results directly in a relatively low entry barrier, which attracts new programmers. Thanks to the use of VirtualDom, it is much faster and beats Angular's head on the reports comparing reaction time. The approach to managing the state of the application called Redux proposed for this library has become the basis for later solutions cultivated in the business. Additionally, Facebook provides tools to help facilitate migration between different versions of the library. Unfortunately, despite its advantages, React.js often causes some confusion, because there are no clearly defined patterns concerning e.g. component styling and because of mixing templates with logic and styles that sometimes make the whole thing look very blurry. Additionally, resignation from class components in order to replace functional components in version 16.8, which came out at the beginning of 2019, has turned the world over to many programmers working with this library so far.

 

Vue.js

Vue.js is third of the leading frontend frameworks, which, to everyone's surprise, has been steadily increasing in popularity since its debut in 2014, winning the hearts of more and more programmers around the world, despite the lack of a "big" company behind it. As the youngest of the frameworks mentioned above, it benefited from the experience of his predecessors, as a result of which it offers a light weight, well documented application framework with TypeScript support. The Vue components are made up of three parts - the HTML template, the script part and the styles part, so that working with them is intuitive and the code remains clear. The management of the state of the application is organised in a similar way to the one proposed by React - Vuex allows centralized storage and modification of the state to maintain control over its values and provide easy access to them in all elements. It’s also worth mentioning many additional features provided by the vue router, which make it easier to implement authorization or action calling mechanisms before or after entering a given subpage. Apart from the set of undoubted advantages, Vue still has a relatively small community, so there are not so many dedicated libraries for it, moreover, you can often face the wall trying to find the necessary solutions on forums, because it has gained the greatest popularity in Asian countries, so it seems to be hard to find any English language advice.

 

Svelte.js

Furthermore, it is worth mentioning the technological novelties, which have appeared relatively recently, and the interest in them among the frontend developers in 2019 has significantly increased, what I have in mind is Svelte.js. It is, like React and Vue, a component framework, but it introduces one fundamental difference - the existing frameworks have based their solutions on a declarative code depending on the state of the application, which places an obligation on the browser to transform these structures into DOM operations. In order to relieve them, at the stage of application building, Svelte.js transforms components into imperative code, which significantly increases their performance. The way the components are written is similar to Vue.js in terms of division into script section, html part and styles. The components are clean, and the latest versions have significantly reduced the amount of code you need to write. Also component lifecycle is similar to that proposed by React and Vue. Unfortunately, it lacks a structured way to manage the state of the application, which can be both wonderful and dangerous. I think it’s a proposal worth considering. After scrolling through the documentation and examples on Svelve's official website I would be happy to give it a try at least for the purpose of curiosity.

 

This was the scene of frontend frameworks in 2019. Certainly, the presented solutions will work better or worse depending on business requirements and the specifics of the project, and private feelings towards each of them are individual and it is very important so that they do not cover up the real state of things. Therefore, the most important thing is to choose wisely and make our work more pleasant and effective with the tools we have at our doorstep. At the same time, let's not forget to constantly expand our horizons with new possibilities that the future brings. So lets enjoy!

 

AMB'S TECH INSIGHTS - AN ARTICLE BY BASIA

Barbara (Basia) is one of our Young Stars at AMB.

She has joined our company during her second year of university education for a student internship and soon gained experience in some internal frontend projects using ReactJS and VueJS.  Basia could proof her skils very fast and had the opportunity to join an international agile IT project as ReactJS developer for an enterprise client from the automotive industry. Basia will round off her skills with a Google Cloud Platform certificate by mid of 2020 to have a fullstack view on IT project development as well.

 

 

DO YOU NEED HELP WITH WEB DEVELOPMENT? CONTACT US AT

CONSULTING@AMBSOFT.DE

 

Sources:

https://2019.stateofjs.com/front-end-frameworks/

https://angular.io/

https://www.edureka.co/blog/advantages-and-disadvantages-of-angular/

https://trends.google.com/trends

https://reactjs.org/

https://www.altexsoft.com/blog/engineering/the-good-and-the-bad-of-reactjs-and-react-native/

https://vuejs.org/

https://naturaily.com/blog/pros-cons-vue-js

https://www.reddit.com

https://svelte.dev/

...and tons of another forums that are hard to remember.