When I ask the interns what they want to work on, they all say they "want to learn the bleeding edge, like Angular and that kind of stuff." Angular? Yeah, that kind of stuff.
Don't get me wrong, Angular, Backbone, ember and all the likes are amazing frameworks. The only problem is there are too many frameworks.
It takes time to learn to work with any framework. First there is a documentation that you painfully have to familiarize yourself with. Then you have to find a real use for it, not just hello world. Once you get familiar with it, it is great. I know a lot of interns that swear by it.
Then comes Angular 2.0. "Drastically different". This means two things.
- Not backward compatible
- You have to relearn everything from scratch to use it
This is why there are still people working on IE 6. If it ain't broke don't fix it. New version of Angular will add cool new features, and the only way to use them is by upgrading. Upgrading means rewriting your whole application. Testing every corner to make sure it still works.
Sure I can say that in one swift sentence, easier said then done. Depending on the size of your project, it could mean taking 6 months off to work on upgrading code only instead of working on your application.
You people writing frameworks. You ruined it man. We were in this good streak and you ruined it all.
So here is the deal. When you learn Emberjs today, your knowledge will be obsolete in a few years. Who knows, maybe you will be happy maintaining legacy software but not me.
This will help you solve problems without having to rely on a framework. You will have your own set of tools and the only time you will use a framework is if you have no choice.
Frameworks come and go. Don't let your ability to work depend on a tool that might have disappeared already.