Learning Angular in 2018 is so passe ...
OK, I know, there are a lot of legacy projects written in Angular. So, it's highly possible you are a junior developer or trying to become one and the word "Angular" rings your bell ... am I wrong?
OR, maybe you have been developing applications using Angular and now you are shouting out "pure crap! Angular IS THE BEST TOOL ever crafted by a human being" ... am I wrong again?
I don' think so.
Back in the day, Angular was cool, it addressed a particular market need (or niche) and the MVC world strongly embraced it.
I'm talking specifically about AngularJS. Cool tool indeed. Solved lots of needs, but involving high costs:
But, in those days, there were not many other choices than JQuery or other pseudo-frameworks.
And also very important, it was crafted with love by the Angular Team at Google. Enough said! (at least for the occidental world LOL).
In 2016, Google released Angular 2 written in TypeScript, but other frameworks also evolved (like Laravel) and other alternatives to the frontend management appeared, like React or Vue.
Here's the thing in 2018:
In my humble opinion Angular doesn't worth it anymore:
Or do you prefer to use the tool that suits best for the application needs and let you deliver it as soon as you can?
Let' compare a real-world application.
I see a "lot of stuff", especially on the left pane.
What are those dependencies? does my project need all of them? (Both are rhetorical questions LOL)
And those TypeScripts dependencies? does my project need them too? and why the heck does my TODO project need "core-js" and "rxjs" libraries? (the world is full of rhetorical questions).
You can play with the live version of this project here: TODO - ANGULAR 2018
And you can sneak peek the project components here: TODO - EDITOR VERSION
I didn't count the number of code lines, but I guess the number is HUGE.
Nowadays, every average developer should know that:
Always think in terms of money, it's not about technology it's just about money.
And what if. ... I can maintain and support the same good with less effort?
Wouldn't it be great?
The same TODO project can be coded in just #35 lines of JavaScript code.
Don't you believe me?
Here you have a copycat TODO project written in vanilla JavaScript that performs 100% exactly the same like the Angular version: TODO - VANILLA JAVASCRIPT
Plus, let's suppose the following:
In the JavaScript version, you can add a state management library like Redux very easily.
In Angular, you'll need to use a third party library like "angular-redux" or "ngrx"to integrate Redux (again, more and more libraries are needed, it's a never-ending story)
If you are interested in how to integrate Redux with an existing vanilla JavaScript check this out: REDUX + VANILLA JAVASCRIPT INTEGRATION
I'd love to read your thoughts.
OR, maybe you have been developing applications using Angular and now you are shouting out "pure crap! Angular IS THE BEST TOOL ever crafted by a human being" ... am I wrong again?
I don' think so.
Back in the day, Angular was cool, it addressed a particular market need (or niche) and the MVC world strongly embraced it.
I'm talking specifically about AngularJS. Cool tool indeed. Solved lots of needs, but involving high costs:
- Applications were too complex for convenient engineering.
- The learning curve wasn't easy at all.
- A lot of unnecessary elements were delivered within any given AngularJS application.
- Proprietary components.
But, in those days, there were not many other choices than JQuery or other pseudo-frameworks.
And also very important, it was crafted with love by the Angular Team at Google. Enough said! (at least for the occidental world LOL).
In 2016, Google released Angular 2 written in TypeScript, but other frameworks also evolved (like Laravel) and other alternatives to the frontend management appeared, like React or Vue.
Here's the thing in 2018:
THE WEB DEVELOPMENT INDUSTRY EVOLVED AND NEW TOOLS ARISED
In my humble opinion Angular doesn't worth it anymore:
The 2018 dilemma
Do you prefer to write applications with the same set of tools, regardless of each application needs?Or do you prefer to use the tool that suits best for the application needs and let you deliver it as soon as you can?
Let' compare a real-world application.
A sample TODO application
Take a look at the picture below, this is a screenshot of a TODO application written using Angular in 2018. What do you see?I see a "lot of stuff", especially on the left pane.
What are those dependencies? does my project need all of them? (Both are rhetorical questions LOL)
And those TypeScripts dependencies? does my project need them too? and why the heck does my TODO project need "core-js" and "rxjs" libraries? (the world is full of rhetorical questions).
You can play with the live version of this project here: TODO - ANGULAR 2018
And you can sneak peek the project components here: TODO - EDITOR VERSION
I didn't count the number of code lines, but I guess the number is HUGE.
IS IT ALL ABOUT MONEY? YES, IT IS!
Here's the thing:AT THE END OF THE DAY IT IS ALWAYS ABOUT MONEY
Nowadays, every average developer should know that:
- Time is money.
- Developing an application from scratch requires time.
- Maintaining a live application requires time.
- The end user would not distinguish the language used to code any given application.
- When you code, you are delivering a good.
- If you have #2 applications that provide the same solution, then the one that cost less is better.
- Time is money (just in case you forgot it).
Always think in terms of money, it's not about technology it's just about money.
WHY RIDE A TRUCK IF YOU CAN RIDE A BIKE?
And what if ... I can deliver the same good (service or product) in less time?And what if. ... I can maintain and support the same good with less effort?
Wouldn't it be great?
The same TODO project can be coded in just #35 lines of JavaScript code.
Don't you believe me?
Here you have a copycat TODO project written in vanilla JavaScript that performs 100% exactly the same like the Angular version: TODO - VANILLA JAVASCRIPT
Plus, let's suppose the following:
- This project evolves in the future and more views are added.
- You need to access the same information from different views.
In the JavaScript version, you can add a state management library like Redux very easily.
In Angular, you'll need to use a third party library like "angular-redux" or "ngrx"to integrate Redux (again, more and more libraries are needed, it's a never-ending story)
If you are interested in how to integrate Redux with an existing vanilla JavaScript check this out: REDUX + VANILLA JAVASCRIPT INTEGRATION
CONCLUSION
Always, it's all about money. Choose the tool that fits best for every budget and every need.I'd love to read your thoughts.
No comments