There are heated arguments in every corner of the internet on which JavaScript solution is better, Angular or React. The question comes in many forms: "What is better, Angular or React?" or "It's 2019, what should I be using to build my app – Angular or React?"
In this post, we are going to examine both Angular and React, and share why we at Tragic Media choose Angular when building complex B2B and enterprise applications.
What is Angular?
Angular was originally introduced to the world as AngularJS back in 2009. This JavaScript framework was created by Google to conquer the many challenges of building and scaling single-page applications and was released under the open source MIT License.
Google's goal with AngularJS was to develop a front-end web framework to simplify both the building and testing of modern applications by providing a consistent tool for developing client-side model-view-whatever (MVW) architectures.
Angular (Angular 2+) is TypeScript-based and is the result of a complete rewrite of the original AngularJS framework. Angular, which was built by the same team of developers from Google and the community, and was released in 2016.
When we mention Angular in this post, we are referring to Angular 2+.
What is React?
React is a JavaScript library built by Facebook that was released in 2013 originally under a BSD + Patents license, which only grants copyright usage. The library became popular because of its low barrier to entry and gained momentum due to the difficult initial release of Angular 2.
At that time, many developers jumped ship and began looking for something new.
By all measures, React (for web) and React Native (for mobile) are incredibly successful libraries. That said, we have continued to be strong proponents of Angular for many reasons which we will highlight in this article.
Why We Choose Angular Over React
We have been an Angular software development team since 2013. We believe Angular has been on par or a few steps ahead of the game when it comes to building sophisticated web applications.
Even now, React might have jumped ahead for a short time, but Angular is leaping back in front with the recent release of its next-generation compilation and rendering pipeline, Ivy, as part of Angular 8.
Furthermore, if we start a feature comparison, we will end up splitting hairs.
The truth is, nowadays, it's more important to base your front-end framework decision on your team's experience and existing infrastructure, than by a feature comparison.
You can build amazing JavaScript applications with Angular, React, Vue, Polymer, or a multitude of other frameworks and libraries. (Just please don't use jQuery.)
However, we do want to highlight why we are such big fans of Angular, and why we continue to leverage it for all of our enterprise applications.
We Like Google More Than Facebook
Maybe we are splitting hairs on this, deciding which supreme internet tracking overlord is less evil. But we have always been big fans of Google's technology. From Gmail and Google Maps to Chrome to Google Cloud Platform, we find their solutions intuitive, well-documented, easily extendable.
Also, Google Chrome is the most popular web browser and, thankfully, the Angular team works hand-in-hand with the Chrome team. This partnership is hard to beat as you effectively get new features in Angular as soon as they are available in a user's browser.
Conversely, Facebook technology is notoriously closed off, poorly documented, and prone to change quickly (and break everything). For years, React was licenced under a BSD + Patents license, which was confusing and gave Facebook power should there ever be competition with any of their products.
Since we work with a lot of startups, we originally stayed away from React due to the uncertain legal implications of the future. More recently Facebook has re-released its tech under the more accepted MIT license. But for us, it never made sense to jump ship.
Big Enterprises Are Already Invested in Angular
Since we have worked with many large enterprises in the financial services industry, Angular is the natural fit.
These clients trust the security and stability of Angular. Furthermore, their organizations already have many applications as well as teams of Angular developers on staff.
This allows us to come in and develop a modern application product, then hand it off to internal teams to support and scale.
Finally, we should spend more time on the difference between Angular as a framework and React as a library. This might seem like a subtle difference, but it's worth exploring.
React is a Library, Not a Framework
Even today, Facebook describes the React as "a JavaScript library for building user interfaces". In fact, this is the first sentence a visitor is greeted with on their website.
We do not say this to dissuade people or companies from using React. Rather, our point is that you should understand the implications of early architecture decisions and make sure you are always using the right tool for the job.
Angular is a framework that includes everything you need to build an application. As a result, Angular provides you with more out-of-the-box but is also more prescriptive on how your app should be architected.
By contrast, React gives development teams more freedom. The freedom to build apps in different ways, combine React with other libraries, using it for small components of a much larger application, and so on. This level of flexibility is good in the right hands, but can quickly lead to a mess if you're not careful!
For example, the way Angular and React handle upgrades and additions are very different. When Angular changes the way it handles routing or data binding, the Angular team will provide you with a way to upgrade your application with minimal pain.
This is made possible because each Angular app is built in a relatively uniform fashion.
With React, if a big change happens or one of your libraries is no longer supported, you would have to (i) rip out your current dependencies and (ii) write new code to match the new React version or new library.
We're a Small Team Building BIG Products
As a small team working on a variety of demanding projects, consistency and stability are key.
The last thing we want is to waste time figuring out how a developer architected the routing for an application that we built 3 years ago. Or to have to re-architect features at every upgrade due to the changing landscape of React component dependencies.
Speaking of which, the biggest security threats are always found in tiny dependencies that are overlooked, which again is why we stick with Angular for our enterprise clients.
We need tools that we can trust, and that will provide a consistent experience, and easy upgrade path to always keep our clients on the cutting-edge. And, for us, that's Angular.
Conclusion
Angular and React are two incredibly popular JavaScript projects. In 2019, both have vibrant open source communities, are available under the MIT License, and have successful organizations behind them.
That said, choose the solution that is right for your team!
In our experience, Angular is better suited for enterprise application development. React is lighter and more flexible, but with that flexibility comes added pain when you scale large applications.
At Tragic Media, we build and support a lot of projects. It's important for us to be consistent and utilize best practices in order to stay efficient and meet client budgets, deadlines, and requirements.
Angular provides all the tools we need to build, test, deploy, and scale a multitude of enterprise applications with our development team. And that is hard to beat.
Looking for help with your web app? Contact Tragic Media today for a free consultation. We have built everything under the sun, and will work with your team to find the right technology for your specific use case.