Back in the day, web developers would implement frontend logic relying mostly on vanilla JS and jQuery. But as front-end applications became more and more complex, tools have emerged to meet that complexity.
This will increase your productivity in the first place. Think of this as a kind of workaround: you have to write less code by hand because there are already pre-written and ready-to-use functions and templates. Certain components of the website do not have to be custom-made, so you can create and extend pre-built components. Also, frameworks are easier to use for website design and most website developers prefer to use them.
As a consequence of the complexity of classic JS, hundreds of frameworks have appeared on the market. But the top three took a confident leadership in the development market: Angular, React and Vue. They will be discussed further.
The first React release was on May 29, 2013, by Jordan Walke, a programmer from Facebook. And the latest version was released in November 2019.
We should pay tribute to the React team: they are constantly introducing new features to make software development using this library a real pleasure.
The use of a virtual DOM (VDOM) and a one-way data flow algorithm in React has certainly influenced the approaches to program development used by many developers.
For now, React’s breadth has grown used not only for web development. There are countless frameworks/libraries created on top of React to improve the developer experience and development speed. He himself created several other popular libraries, such as Gatsby to build on top of React and GraphQL. Next.js to create React server programs with little or no configuration. Also, frameworks such as Enzyme for testing, React Intl for international data formatting, and many others.
Angular is a cross-platform framework that adheres to the MVC design pattern and encourages loose coupling between presentation, data, and logic in components (the building blocks of an application).
To make the web application lighter, Angular brings backend services to the client side. Therefore, the load on the server is reduced.
Thanks to TypeScript, project code is clean, easy for developers to understand and contains fewer bugs. Strengths of Angular: excellent documentation, support by Google, a huge set of development tools (Material UI, CLI, etc.)
One of the disadvantages is that more skilled developers are required in the projects, because, for example, you need to know TypeScript. Therefore, it complicates project development, especially if the project is first developed by one team and then transferred to another team.
Another problem with Angular is the frequent release of new versions. If you always want to use the latest version of Angular, you may have problems with this project because it's more difficult to maintain
Vue.JS is an open-source framework for working with UI, which was created based on the best practices of these technologies. Vue.js, like React.js, is an open-source library, but unlike React.js and Angular, it supports a compact file size. It is the most popular JS framework according to GitHub statistics. We can say that Vue.js was created from a combination of Angular and React.js and their improvement. Like React.js, Vue.js is very fast, uses a Virtual DOM, and provides reactivity and component structure. It is also worth noting that Vue.js provides the ability to control the HTML already displayed by the server, this has an advantage over React.js.
Vue.JS also has many modules that implement the approach to web application development. For example, Vue has developed its own technology for monitoring the status of the program - Vuex. This is part of the Redux library, which implements the streaming architecture in React. Because this approach, practised by the Redux library, proved to be quite convenient and successful. Vuex completely borrows the ideas of Redux, but with a much higher degree of integration than in the case of the React and Redux libraries. And it transforms into speed and convenience.
We should not forget that the success of technology directly depends on its users and activity. That is - the community of developers. So React, being the most popular technology, has a huge number of extensions of the main functionality. They are created by members of the community and React developers have tools for all occasions. At Vue.JS things are not going so well in this regard. Anyway - for now. However, this technology is gaining momentum and already has many useful libraries that solve most of the urgent problems of developers.
If you trust the number of stars on GitHub, Vue is popular and highly valued. But we can notice the difference in other trends. I believe that GitHub stars are a bad measure and the Vue community is obsessed with GitHub stars. Most likely, the GitHub star is just a click. Because other sources of information do not say about the popularity of Vue.JS.
Img 1 - Github stars history 2014-2020. Source
Stack Overflow Trends
React is currently the most popular interface framework and continues to grow. In addition, React is more popular than other frontend frameworks, although it is used more often: the pleasure usually decreases with popularity.
Img 2 - Stack Overflow Trends. Source
According to the GitBranch survey, React is the most popular framework. In addition, over the past year, its popularity has grown by 10 per cent. Also meanwhile, Vue.js has lost 7 percentage points over the past year and still ranks third after Express by a small margin.
Img 3 - GitBranch survey. Source
What else to create a website
Also, in order to build a dynamic website, you need to create a back-end part that uses one of the JS frameworks. Currently, Node.js is becoming one of the most popular back-end platforms. The advantages of Node.js are an asynchronous platform, a large set of internal and external module libraries with ready-made solutions, and a good balance between product performance and developer efforts.
The platform assumes its own tools and features, for example, there are no browser APIs, cookie, or DOM, but there are own libraries and other interesting solutions. Performance and speed are one of the main benefits of this platform. This is because it runs on Google's V8 JS engine. Because the logic of the program consists of small modules, as opposed to creating a large monolithic core, you provide better flexibility, which affects the ease of development in the further development of your product.
Feel free to choose new tools and experiment with concepts. Remember that even the flagships of the IT world are regularly trying something new. There are no dead ends - only new promising paths.