I felt this way with Angular. I was just trying to do data persistence on my own when the whole world, at least the loud part of it, decided that Angular was the future. When I was just trying to read the documentation, some of the teams I worked with made a full transition to the new framework. They swore by it, the interns felt like they were working where the edge cuts, and I was reading my documentation.
There is nothing wrong with Angular, it is a tool that does what it does. A lot of people like it because single page application is all the craze these days. But, and there is a big butt, most of those who implemented Angular 1.x wanted to upgrade to 2.x and they couldn't. It meant learning new metaphors, changing their application entirely, but you gotta keep up with tech right?
It's like when you watched the movie "Behind Enemy Lines" and it was a good movie. Then one day you discover that there is part 2. All excited, you get the DVD and start watching. 20 minutes into it, you check IMDB and realize that it has nothing to do with the first. It's not the same actors, it's not the same director. As a matter of fact, the only thing both movies have in common is the title.
Angular 1.x is not gonna get support any longer, and if your team depends entirely on it, well you are now the maintainer of legacy software.
When people find a good ways to solve a problem, they share their code and libraries. They document it and it makes the world a better place. Now as the consumer of those tools, we have to first decide if they are the solution to our problems. I always ask these questions:
- Do I have to customize it in a way that it breaks compatibility?
- When version two comes out, do I have to rewrite my code?
- When the next person works on this project, does the fact that I use this framework makes their job easier or harder?
- Am I gonna be solving problems or fighting the framework.
Keeping up with tech can be very hard. The moment something comes out, you feel the need to catch up. With time, you end up knowing a little bit about everything without being able to build anything concrete with anything. Take a second to slow down. You can't be the best at everything.
Take one subject and master it. Despite how much we've progressed, Perl developers still have jobs today. The most senior developer in my team at my last job was a Perl developer. Mastering Perl does not limit you to working with just that language. If you spent years using it, you can't help but understand the web stack. From server settings to customization, from dealing with new frameworks to designing database schema. You won't have any problem switching context.
I used PHP for the past 6 years, but when I was asked to consult on a website running Perl I did not struggle one bit. When I was to work with a home made non documented framework that powered a high traffic website, I did not have any problem either, because I understand the web stack.
Mastering one language, or one skill, will make you good at your job. You can be an expert PHP developer and work on a website running on .Net with C#. At the end of the day it is all the same. An expert carpenter can build you a nice chair or a gazebo.
If you started programming using C++, don't switch simply because everyone thinks Ruby is the future. Or don't switch from Ruby because Nodejs is all the craze. Master what you know and working from language to language will become a simple context switch.