tl;dr; A humble point of view of an average backend/"full stack" developer on JavaScript. How it evolved, how backend devs stayed in JavaScript 2010 and how the gap between jQuery-JS and ES6-JS became an abyss.
Terms
Let's wrap up some terms that I'll use further:
- Backend developer - a person who writes PHP/Ruby/Python/etc. server-side code.
- Frontend developer - a person who writes complex JS/CSS/HTML.
It is about specialization. Of course all web devs are a little bit "full-stack", but only a super guru are really "full-stack".
Once upon a time...
I remember the times 15 years ago when JS world was a total mess.
For me, as a beginner home-made web developer, it was a black magic.
It was hard.
I was making some PHP sites, generated everything at backend side. Sometime I needed some "bells and whistles".
You could copy-paste some "pretty gallery or dropdown menu" from some "JS libs site".
And you were lucky if it worked for you. If not - there was literally no way to get "what is happening there" and the JS code was just ugly mess (at least how I saw the situation at that moment).
It was hard.
Year 2006 blown web dev world ... jQuery.
Anyone could make some easy JS trick really easy with jQuery. And more over it had such a cool plugins system.
You just add some "pretty gallery plugin" and attach that gallery with simple selector. There were clear "entry points" for customization.
Then AJAX epoch. And again jQuery made it as simple as $.ajax
.
All that things made JS world easier, simpler to backend developer (actually we were more like full-stack in that time).
It became easy.
But "the world has changed...". SPA and cross-platform JS mobile apps appeared. First it was "ugly-toys", but then it appeared to be serious.
jQuery is not enough to make SPA or a big JS app.
Backbone came to the rescue. It was hard to get some things, but it was so "jQueryish". It literally added some app structure, but allowed us to use the same old-known things we had before (that was actually the key to adoption).
It was kinda easy too.
Dark times...
One day it just exploded: Node.js, Phonegap, Konckout, jQuery Mobile (*trollface*), thousands of Backbone-based frameworks, Marionette, Angular...
Some backend devs tried to follow, but honestly - for example it is too hard to follow your PHP news and keep yourself up-to-date with every JS framework. Someone took Node.js and became happy, someone chose Backbone-based things and decided to dive in there.
Read more ...