This battle is getting ridiculous attention from the developer’s side. I want to wipe off the line of battle and bring you some thoughts about why we need to explore the world outside of our frameworks or technologies.
There was a number of reasons why WEB evolved to the state which we see at the moment. Let’s list some main points why SPA (single page applications ) appeared on the stage of the modern web development:
- Ajax came on the stage and brought us “invisible” client-server communication
- RAM became cheaper, so got an opportunity to compute logic on the client-side
- Mobiles became most used devices overall
- Apps complexity grew dramatically. There are different concepts like “Thin Server Architecture” to balance logic between server/client.
I am not going to deep dive inside but if you will research pre-conditions for SPA, you can find much more sense in the modern web development. Some tools and patterns will appear in the new light for you!
Study the past if you would define the future.
Originally started from an idea of building solid static HTML pages and then add dynamic behavior. So that makes perfect sense if we would think about that form the context of 2009 when 80% of the web was built with the tremendous amount of forms. Also, this approach helped to separate developer roles.
(By Angular I mean Angular 2+ versions)
Angular was created with the whole bunch of brilliant ideas across different Frameworks. With the TypeScript as the main language Angular got all advantages of strictly typed languages. Angular-cli was inspired by Ember-cli. The component approach was already on the stage, and we can see benefits of usage in any modern Framework.
Angular got much more options to manage data flow in the application with the flexible change detection configurations and 3rd party libs like NGRX. Which pretty much resulted from Redux state management library widely used by React community.
React was also strongly affected by community experience in building web applications. They picked the brilliant strategy of component reusability. And separating presentation/logical components. With the unique rendering technique and Shadow DOM React is the overall winner of rendering performance across frameworks. The Flow might be also a way Facebook decided to adopt TypeScript benefits for React ecosystem.
Overall, we can see how much modern Frameworks adopted shared knowledge to for their needs to improve overall experience.
You can get a lot of benefits by trying to implement the same thing with different Frameworks. Some architecture patterns can be shared and applied from one app to another.
- My personal experience with React + Redux gave me a perfect sense of feeling when I need to apply NGRX library to my Angular applications.
- React Stateless Components — is a great example how to keep your view components clean for any framework as long as it has such approach.
- I found so many benefits by using Angular + TypeScript, so now I use it also for Node.js and even React apps.
- Angular has a lot of built-in patterns which helps to develop large applications using Guards, Route Resolvers, Interceptors. Once you tried them, you can get an idea how exactly to implement such things in the less opinionated Frameworks.
- You can not pick best Database structure if you’re only familiar with SQL
- You can not pick best backend Programming language for the project if you are only familiar with Java.
- You can not pick between React & Angular if you know only one of them!
You can’t pick because you don’t have choice if you have never tried another one.
Give yourself freedom of choice by learning alternative solutions!
It simply extends your mind. If you’re already a guru of React or Angular don’t lock yourself in the borders of the single technology.
Pull yourself out of the comfort zone and learn a new Framework, Language, Technology! Be a Generalist in the world of every-day changing technologies and you will get a true value of each community.