Today I want to tell you why you should learn AngularJS anyway.
Oh, I ain't got no time for that!
Well, here is your TL;DR; version:
- Angular is like the Next jQuery
- People tend to put it everywhere these days
- The market demand is growing
- It will help you "pitch" your next employer
- Chances are high that you will have to touch it some day anyway.
- When you will migrate from Angular (and you will), you need to know the simplest paths. And then you need to know some Angular.
The project is actively maintained and keep growing.
Google stays behind those stuff, and you can imagine how far it can go.
Today the stats are:
Angular is marketed as a "next thing in web development" and "silver bullet for building fast".
There are a lot of consultants and community leaders in the wild, promoting this stuff.
You can stay aside for a while, but the Market will suck you in anyway (or not, if you are a pure backend programmer).
You can hate it, you can ignore it, but you cannot deny the fact that Angular is conquering the hearts of both technical and non-technical folks.
It's pretty natural to see the highly hyped stuff in all vacancies over there. I see AngularJS everywhere these days: startups, huge enterprises, well-established companies and every other CV.
It does not really matter whether the company need people with deep Angular knowledge.
It does not really matter whether the candidate has some real knowledge.
Those letters are there, pretty much as "jQuery" used to be :)
It is said to be "a framework for web apps" by the majority of developers.
The biggest misconception is to think that AngularJS is a ready-for-use framework for building web apps!
Well, it's not.
It feels more like a specific runtime and a toolset tailored for the environment.
It's a platform for building frameworks on top!
You do not believe me, right? I can read this in your eyes (well, not really, but let's pretend).
Let's open the landing page of the project and see some descriptions:
AngularJS is a toolset for building the framework most suited to your application development.
Key word: toolset.
AngularJS lets you extend HTML vocabulary for your application.
Key words: extend HTML.
The resulting environment is extraordinarily expressive, readable, and quick to develop.
Key words: environment.
Yep, that's it: Angular creates an environment, which can be used to write sophisticated HTML and build frameworks on top of it.
If you start thinking like that, you will realize soon, that you cannot simply start hacking with Angular.
Unless you are doing some simple stuff, like HTML manipulation.
For a real project you need to build some foundation first!
And to build the foundation, you need to study Terra Incognita you are approaching.
Imagine that you are a pioneer. You go West to find your destiny (and maybe some gold).
You come to an unknown and unfamiliar place. The land is strange and nothing you have seen before.
But you need to build a shelter, or even a small town, to start exploring this land and build the unforeseen future for the humanity :)
Angular is like a piece of not-yet-well-known land.
You need to lay a foundation first, before you start building walls.
Do not build walls right ahead, or you will almost certainly fail and suffer.
Explore, analyse and solve the problems one after the other.
If you need to simply build something, ask yourself: are you ready to go West and dive in the unknown?
Coming back to the Engineering World.
To make your live easier, you should tell your boss, that you will spent time building or choosing the angular-based workflow, framework and guidelines tailored for your specific usecase.
It is almost inevitable, believe me.
You should do this before you even start delivering, or you will be in the trouble (unless your are a real angularjs ninja. But if you are, oh c'mon, you will not be reading so far).
There is basically two problems which will hit you hard:
- Performance (it's traded off in this runtime by design)
- Fighting thousands of tiny silly (and witty) things (making tradeoffs here and there because runtime forces you to do so)
That's why I am suggesting you to invest some time and find (or build, if you are experienced) the best workflow suiting your context.
It would be great, if the workflow will be "open" for migrating from Angular.
Just in case.
If you can skip the painful part and go along the established route - then your journey may be colourful and pleasant :)