For this post, we wanted to focus on a question we've received many times - Which Javascript Framework is right for my organization? The answer to that question comes down to our favorite consulting answer? It depends. It does depend on an organization’s specific requirements and you may find that you will mix and match frameworks depending on the solution you are building.
In the end, organizations do not have unlimited resources and if you are looking to make some decisions on a JavaScript framework to support your web modernization efforts, here is a nice summary written by Alex Arriaga, Base22 Technical Lead.
There are three libraries/frameworks ruling the front-end world in 2018 and we believe they will continue to lead for a number of years.
React
Created by Facebook, React is widely used for creating UI interfaces with good performance even at the enterprise-class level. There are many successful use cases for React. Here is a full list of companies and projects using React. Among better-known companies are Netflix, Airbnb, American Express, Facebook, Capital One, Atlassian and others.
Pros
- A short-learning curve for non-complex applications
- Easy to find engineers who can contribute to projects
- Can handle small UI components to complex single page applications
- MIT license
Cons
- When building complex apps, there is no official "way" to proceed. React leaves open how you organize assets, how to set development workflows, how to style apps, etc.
- It uses a flavor of XML syntax called JSX which may not "feel" natural from a traditional front-end perspective (not mandatory, but recommended)
- It needs external packages for supporting AJAX requests or any other non-UI task
- Browser compatibility is ONLY from IE11+ (for IE 9+ polyfills need to be added which makes the apps heavier)
Vue
Vue was created by an ex-Googler (Evan You) and maintained by a community via open source funding. Vue was inspired by AngularJS. It is the fastest growing framework since 2017 and Vue has gained a lot of attention because of its “progressive” approach to creating solutions. Vue is used for small components integrated into Digital Experience Platforms such as IBM WebSphere Portal and Liferay as well as content management systems such as Drupal and WordPress.). Vue is used by many companies including Adobe, Xiaomi, Alibaba and GitLab.
Pros
- A short-learning curve for small and complex apps
- Easy to find engineers who can contribute to projects
- The progressive approach that it takes ensures we only add what we need
- MIT license
- It can be configured to work with ES2015 or TypeScript
Cons
- Product support resources are less when compared to React or Angular which have Facebook and Google behind their offerings
- There are not as many uses cases in the enterprise world and less documentation available for integration with Digital Experience Platforms
Angular (not AngularJS)
You don’t want to confuse Angular (current version 6+) with AngularJS. The Angular framework was created with the enterprise-class projects in mind. It was re-written from scratch. The main difference we see as compared to React is Angular provides everything is there to work with single page apps; from components to animations, and routing. And the platform is supported by Google.
Pros
- Full framework, not just a library
- Mature UI kits (like Material Design)
- Takes advantage of modern front-end tooling like Yarn/NPM, Observables, TypeScript, etc.
Cons
- Larger learning curve when compared to React or Vue
- Developers need to learn a new language (TypeScript)
- There are not a lot of public use cases related to integrations to Digital Experience Platforms
- It was intended to build single page apps, not just simple components. Angular’s team is working on this, they announced something they call “Angular Elements” which will use the W3C standards for web components. (also known as custom elements), no release date yet, but we assume this will happen next year.
At the end of the day, the choice of Javascript Frameworks for an organization can have far reaching impacts across an organization. We hope you've found this explainer useful. If you need more assistance, we are here to help.