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.
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.
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.
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
...and tons of another forums that are hard to remember.