Here’s Why We Just Can't Agree on One JavaScript Framework
Indeed! Why can’t we just get along and use one single JavaScript framework? Or two!? Here’s what I think about this situation that a lot of people consider a problem. I think it’s a huge opportunity, actually! This whole disagreement is actually one of the things that made JavaScript so popular!
What follows is a dichotomy between two world views on the same topic.
Part 1: The Pessimistic View
There is a lot of personal preference involved, along with ignorance, hype and superficiality. I know this sounds dark and pessimistic, but we also need to look at this aspect.
People want to get noticed so they will build things. If a new framework will get you that, you’re going to build it.
They can’t get along with another framework maintainer to have their way with an existing library and contribute their “magic” so they build their own.
Take for example Lodash vs. Underscore, Durandal vs. Angular vs. Aurelia. This is where maintainers of one project couldn’t get along with maintainers of another project so they rolled their own.
Then there’s the company war of getting the attention of the development talent. Google’s Angular vs. Facebook’s React.js.
Then, there’s also the hype around these frameworks and people taking sides because they prefer one company over the other, one framework over the other, for no objective reason.
Most of the “already existing” projects I’ve worked on we’re using one technology and not the other because the people who chose it, were either inspired by some talk. Or because “Netflix is using it, so if it works for them, it should definitely work for us”. Replace Netflix with Amazon or AirBnB or Google or Facebook.
The technology choices were made based on GitHub stars and tweets, not GitHub issue count, pull request count, community size, Stackoverflow community size and documentation availability/clarity.
Shameless plug: I wrote about the exact topic of choosing a new technology, in 2016. Still relevant, so check it out: Top 5 things to consider when choosing a new technology.
But many of the pessimistic scenarios above fade in the face of sheer innovation, progress and problem solving.
Part 2: The Optimistic View (aka seeing the light)
The JavaScript community has grown a lot since I seriously started working with the language, around 2008–2009.
Not only that it grew, but it also flourished. Look at the whole JavaScript ecosystem right now. It’s full of frameworks, libraries, and tools! Some people see this as being very tiring, and they complain about the JavaScript fatigue. I gave a talk on the topic of my JavaScript fatigue fatigue.
I’m actually giving a different version of that talk again, in a couple of weeks, at TechFest Bucharest. Looks like the topic is still relevant.
We keep complaining that everything changes, yet we also try to learn everything, all while forgetting to prioritize the basics.
I am blown away by the scores of people and businesses that solve problems with JavaScript and the projects that emerge out of all this problem solving.
Ultimately, JavaScript’s suddenly acquired celebrity stands to prove that people are solving problems with the language. Hell, even universities changed their curriculum and now teach their introductory programming courses in JavaScript instead of the more established Java — Stanford Uni’s intro to CompSci course adopts JavaScript, bins Java. Do a Google search on the topic to learn more.
To circle back to the brighter part of my answer, I do believe that the reason we don’t agree on frameworks is because each solves a specific subset of problems in a different way.
It’s important for us to figure out which problem are we trying to solve and if the chosen tools fit the bill as close as possible.
Closing thoughts
It’s true that being an X tool fanboy/fangirl can make us treat that tool like a hammer and hit everything in our sight as if it were a nail. That’s the pain of the conference talk brainwash.
To put it in an empty consulting sentence: It’s all a matter of choosing the right tool for the right job.
As long as we’re able to keep our urges for the new and shiny in check, at least partially, a lot of great things will come out of this disagreement.
As always, the idea for this article was sparked by a question I was invited to answer, on Quora: Why can’t everybody agree on one JS framework like the jQuery days?.