I have always been a big fan of JavaScript. The moment I discovered that I could use alert()
to debug, I fell in love with it. That was many years ago, when I was still telling people to fire up internet explorer, notepad and get started. At lot has happened since. I find myself more reluctant to just recommend JavaScript to new developers now.
JavaScript, I used to write it Javascript. It started with this language that everyone hated. Your punishment for being naughty was to maintain some code written by a previous developer. Who probably died from it.
Everyone hated it. You can find state sponsored research that confirmed that JavaScript sucks. Go ahead, Google it.
But one day, some people tried to fix it. They didn't change anything in the language exactly, they changed the way we look at it. Douglas Crockford showed us the good parts of JavaScript. John Resig hid the bad parts and called it jQuery.
It's funny when you hear someone who says he knows jQuery, but he hopes to someday learn JavaScript. (-__-)
All of the sudden, we all loved it. It became the hippest language in town. All the kids and their grandmother swear by JavaScript now. I remember talking to a guy in marketing, when I told him I was a front end developer he immediately said "Oh I love Java".
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.
Being a JavaScript developer gives you one of the highest paid jobs in the market even when you don't do much with it.
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.
This is the phase JavaScript is going through. Everyone that used to hate it have now built their own framework. And they published those frameworks. Meaning, every newbie trying to learn JavaScript is reading those blog posts and documentations thinking he is ahead of the curve.
<rant ng-bind="rantOfTheDay">
JavaScript went from being the underdog, to cool dog, to becoming every dog picture on Facebook. Your dog is not cute or funny OK!!!
You people writing frameworks. You ruined it man. We were in this good streak and you ruined it all.
</rant>
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.
So that's why I don't recommend learning frameworks. I suggest you pick any language. Doesn't even have to be JavaScript. Any, just work long and hard on it. It is only way to develop one of the most underrated skill today. Problem Solving.
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.
Comments
There are no comments added yet.
Let's hear your thoughts