From vanilla JS to a framework

Since the early days of web development, JavaScript (JS) has been the biggest player in the game. Other languages were available as well but were less approachable or popular. It's mainly the fast learning curve and flexibility that makes JS the perfect candidate for young and ambitious programmers. A lot of them even grew to be JS veterans.

But as soon as you start building more complex web applications, vanilla JS code (being plain JS without additional libraries or frameworks) quickly tends to become an unstructured mess. As a developer, you will soon lose the overview of your own code. Different solutions emerged to solve this problem.

On the one hand, Typescript is an alternative which is a strict syntactical superset of JavaScript and adds optional static typing to the language. It's often the preferred choice over JavaScript to create more complex applications and it transcompiles to JavaScript.

On the other hand, frameworks such as Angular, React and Vue were created to structure your complex JavaScript or Typescript applications. They typically make abstraction of certain more complex matters such as DOM manipulations, data binding, asynchronous programming,... to allow you to counter even the most complex issues.

JavaScript's most popular frameworks

The number of available JavaScript frameworks and libraries is almost infinite. When we build web apps at Endare, we always use on of the three most common frameworks (Angular, React, or Vue) leveraging its powerful tools and technologies. It's straight-up unnecessary to re-invent the wheel and it saves us a tremendous amount of time.

Here is a short overview of the most popular JS frameworks and their major (dis)advantages: 

Pros and cons of the JS frameworks Angular, React, and Vue
Pros and cons of the JS frameworks Angular, React, and Vue

All three of them are flawed or strong in their own way. Choosing one of them is often not only based on these advantages and disadvantages but also on experience. But even without that experience, each of these three frameworks will tremendously help you in building complex applications so choosing one is better than not using one of them.

A decision based on the customer's use case

From the overview above, an informed decision can be made. However, at Endare, we also bring other factors into account that influence our technology decision.

When a technology choice has to be made, we’d first like to explore what the actual use case of the customer is. According to this use case and the actual needs we pick the framework that best solves the challenge(s).

For example, when a customer wants a web app that is able to work offline, we choose the framework that has the best service worker support which is typically Angular. When the complexity of the use case requires one-way data binding for better stability, React is the way to go. And when you only want to use a JS framework in parts of your application, Vue might be the best choice.

These are just a few example questions on which your choice can be based. Most often, the decision process is more complex and the choice is never black or white. Our many years of experience also play a part in the decision process.

When eventually a framework choice has been made, we assign the most capable developers from our team to counter the challenge. They can always count on the support of their colleagues to complete the task within the agreed timeframe. In that way, each project is handled by the best suitable team, resulting in the most favorable outcome. 

To sum up, when faced with the decision to choose between Angular, React, and Vue, there are several things to consider. Not only the pros and cons are an important factor, but the experience within each technology and the specific needs of your project as well. Each use case differs on many elements, so there isn't and never will be a clear-cut answer.

If you are looking for more information tailored to your business needs, don't hesitate to contact us!

Follow us on LinkedIn - Instagram - Facebook - Twitter!