Whoop! 🥳
A whole decade has come and gone, and what a decade it was. Back when ECMAScript 5 was just released, no one would have predicted that 10 years later, we’d be arguing about const
vs. let
😀.
We’ve witnessed various JS frameworks pop up left and right. Some have changed the way we build software entirely, while others have not been able to stand the test of time, so I thought it would be nice to reflect on all the JavaScript frameworks that have influenced us as developers in one way or another this past decade.
These are frameworks that may have revolutionized the way we build software. They were on the bleeding edge of advancements and usually challenged the status quo to usher in a new era of software development.
The ones you’ll see in this article were selected based on the following criteria, and of course, these still comprise my personal opinions.
If you disagree with this list, which I’m confident you will, please let me know your reasons and your preferred choices. Note that this is in no order, as it would be a fool’s errand to “rank” frameworks based on importance.
Let’s get to it, then. These are my top 10 picks for the most important JavaScript frameworks in the past decade.
I’m sure this surprises no one, as React is one of the best-loved JavaScript libraries, with a large and vibrant community and a large number of job opportunities. Yes, I know it’s a “library,” but the whole React ecosystem has grown so much that it is usually compared to other frameworks.
Let’s see how it meets the requirements.
React was initially released on 29 May 2013, with the latest version, v16.12, being released in November 2019. The minor release came with new bug fixes, which highlights why React is such a stable library.
We have to give props to the React team as they continuously push new features designed to make software development with React such a joy.
Its use of the virtual DOM (VDOM) diffing algorithm and its one-way data flow has certainly influenced the way a lot of software developers build software, so we can confidently say it meets that criterion handily.
Apart from its massive adoption and large community, React has also spawned various other libraries like Enzyme for testing, React Intl for international date formatting, and even whole frameworks like Gatsby and Next.
Released in November 2010, Express has become the de facto framework for building APIs and web servers using JavaScript (thanks to Node.js). Few frameworks have grown into such a monopoly the way Express has.
Express made server-side JavaScript much easier and more accessible for a large group of developers and led the way for other, newer frameworks like Koa.js and hapi.
It has a very large and supportive community backing it, as well as the benefit of being battle-tested over time. While you can do a lot with Express on its own, it’s the vast array of easily configurable middlewares that really makes this framework shine.
There is a rich ecosystem of middlewares out there, which means you almost never have to write anything from scratch unless you choose to. Pair this with its minimalist approach and you have got a framework that has impacted web development so much that it would be a travesty not to include it here.
While Backbone is gradually being forgotten and is well on its way out, for a time, it was one of the leading frontend frameworks. These days, building single-page applications (SPAs) is a pretty trivial matter, but before Backbone was released in 2010, SPAs were largely unheard of.
The original pioneer of single-page applications, Backbone made it tremendously easier to build more complex web applications using just JavaScript, and it ushered in an era of fast, lightweight frontend frameworks/libraries.
Although it adopted an imperative style of programming — a style that is slowly being replaced in favor of more declarative patterns — it can still be said to have popularized the MVC approach of building web apps.
All these reasons alone make it clear why it should be here, but the fact that it is also still in use today (although in decline), as well as being the most stable JavaScript framework, means that it deserves a spot on this list.
Before React Native, publishing your application to different platforms usually required multiple codebases of the same app, complete with different tech stacks, teams, and processes. This is because, traditionally, different platforms utilize different programming languages and tools.
The ability to develop all your apps on all platforms using a single language (and, often, a single team), drives down costs and reduces team management overhead, which is a big reason why React Native is so popular right now.
Although hybrid apps built this way are usually not as performant or as optimized as their native counterparts, for most cases, they’re usually enough to get the job done. React Native has grown so much that it has a large number of available jobs and a huge community behind it.
Looking back at the software development space prior to React Native, it’s clear just how much it has influenced the way we built software in the past decade, and it shows no signs of slowing down as new features are still getting added.
Another enabler of cross-platform application development, Ionic has made it possible for a large number of developers to build performant cross-platform apps.
Apart from having a great developer experience, Ionic places emphasis on open web standards, going so far as adopting it as a core philosophy.
Since its release in November 2013, Ionic has been steadily growing and evolving as a platform, and thanks to its open-source nature, it has been widely adopted by the dev community, with over 40,000 GitHub stars to show for it.
While it is definitely one of the less popular entries on this list, it has no doubt impacted the way we build cross-platform applications and is still growing daily.
One of the most-loved JavaScript frameworks, Vue.js is erroneously viewed as an underdog in the frontend frameworks space. This might be due to the fact that unlike React and Angular, it doesn’t have any big tech company backing it.
While this fact comes with both pros and cons, you can’t deny just how much Vue has impacted us as JavaScript developers. It is currently the most-starred JavaScript framework on GitHub and came in second on the list for the most-loved frameworks in StackOverflow’s 2019 developer survey.
The combination of its very active community, its ease of use when developing with it, its lightweight size, and the fact that it’s still in active development means that the only place for Vue to go is up.
While grouping these two frameworks together may be seen as a travesty by most developers, I feel it’s appropriate to do so because of the shared history between these two massively different frameworks.
AngularJS was first released in 2010 and, along with Backbone, was one of the first true JavaScript MVC frameworks. The fact that it was one of the first of such frameworks meant that while it indeed proved revolutionary at the time, it was far from perfect.
It was more difficult to work with than other frameworks like Backbone and Ember, and it also had a larger bundle size, which affected performance on lower-end devices. It was also geared towards enterprise software, which made it a bit harder to pick up for newer developers.
These were some of the factors that led to the development of Angular.
Angular shared a lot of the same features with its predecessor, like the MVC architecture and the declarative approach to building UI, but it also did things differently, too, such as its switch to TypeScript for development and its revamped approach to modularity.
Angular currently is one of the most popular frontend frameworks today and, along with React and Vue, constitutes the “holy trinity” of frontend technologies.
Admittedly one of the newer entries in this list, it is by no means less important. This trendy offspring of React + GraphQL is quickly becoming the framework of choice for many developers. It’s growing so fast that it already has more than 40,000 stars on GitHub in less than three years.
While GitHub stars are not an official metric of how important a framework is, it is still a good indicator of interest over time. To put things in perspective, jQuery, which is one of the most popular libraries of all time, is 11 years older and currently has around 50,000 stars.
Again, GitHub stars are not a hard-and-fast metric, but when you take a step back and consider just how much developers love Gatsby and the sheer number of plugins in the ecosystem, it’s clear that this is not just a fad here today to be gone tomorrow.
It takes a different approach to building web apps, with a focus on generating static sites that are usually faster, more accessible, and easier to build than traditional frameworks like Angular.
It has spawned a huge ecosystem of plugins and developers, so much so that you hardly have to do anything yourself. This frees you up to spend more of your time on the actual business logic and is probably why so many developers who’ve tried it do not want to go back.
This is another underestimated (in my opinion) JavaScript framework that was born out of similar reasons as React Native.
Electron is a framework for building cross-platform desktop applications using web technologies like JavaScript, HTML, and CSS. It has much of the same advantages (and disadvantages) as React Native in the sense that it allows teams to develop for different desktop environments without having to set up different teams for different environments.
It has proven so useful, in fact, that it has been adopted by major tech companies like Slack, Microsoft, and Atlassian for some of their desktop apps. It also has a huge collection of apps built by independent developers.
While it’s not perfect — nothing is — it’s still performant enough to run the vast majority of desktop apps available, and thanks to the active, ongoing development, it is only going to get better.
I couldn’t come up with a list of impactful JavaScript frameworks without adding the most popular JavaScript testing framework in existence (no, Jest is a library 🙂).
Test-driven development (TDD) has become so popular that it’s the default way of building software for many companies. This might be due to the excellent state of testing frameworks/libraries in JavaScript, and at the forefront of this surge in popularity is Mocha.
Mocha is an extensible test framework for Node.js, and it comes with a slew of features like browser support, async testing, and the option of using almost any assertion library for test assertions.
The flexibility, ease of use, excellent documentation, and massive community behind Mocha makes it a no-brainer for testing Node software.
Since this list is not exhaustive in any way, there are some honorable mentions that were omitted here.
This is either because there was no space for them or because they’re not really traditional frameworks even though they’ve impacted the JavaScript community as much as some of the frameworks listed above.
This is one of the most important inventions in web development of the past decade (framework or not), and it was only omitted because it is not a traditional framework. Rather, Node.js is a runtime environment that allows you to run JavaScript outside of the browser.
It has spawned a whole host of frameworks/libraries built on top of it (Express, FeathersJS) and is responsible for the pervasiveness of JavaScript on the backend.
Before there was AngularJS, Backbone, Meteor, et al., there was jQuery. It is the most popular JavaScript library ever, with over 73 percent of the 10 million most popular websites making use of it in one way or another.
Even though its popularity is waning (thanks, React), it still has a massive community behind it and is still actively being deployed in production websites more than 13 years after it was released.
I’m sure a lot of you reading would be surprised to find that I did not include Bootstrap in the list, seeing as it is extremely popular and it meets all the criteria I outlined earlier. I have a good reason for not including it, though.
Much of Bootstrap’s impact can be attributed to HTML and CSS as opposed to the JavaScript it comes bundled with. The vast majority of developers installing Bootstrap are doing it for the access to the huge HTML and CSS collection of reusable, battle-tested components rather than for some JavaScript functionality.
This is why I felt it would be unfair to group it along with pure JS frameworks above.
Now this list is by no means exhaustive, as this article would get dense really quickly if it included ALL the impactful JavaScript frameworks. This is also partly why I decided not to include any libraries (React is special) in this list and instead focused on fully fledged frameworks.
This article, of course, will contain my personal biases and, in some cases, may not be fully representative of the truth as I didn’t personally use some of the frameworks listed here, so please, if you find anything that seems off, a quick comment would be appreciated.
Debugging Vue.js applications can be difficult, especially when there are dozens, if not hundreds of mutations during a user session. If you’re interested in monitoring and tracking Vue mutations for all of your users in production, try LogRocket.
LogRocket is like a DVR for web and mobile apps, recording literally everything that happens in your Vue apps, including network requests, JavaScript errors, performance problems, and much more. Instead of guessing why problems happen, you can aggregate and report on what state your application was in when an issue occurred.
The LogRocket Vuex plugin logs Vuex mutations to the LogRocket console, giving you context around what led to an error and what state the application was in when an issue occurred.
Modernize how you debug your Vue apps — start monitoring for free.
Install LogRocket via npm or script tag. LogRocket.init()
must be called client-side, not
server-side
$ npm i --save logrocket // Code: import LogRocket from 'logrocket'; LogRocket.init('app/id');
// Add to your HTML: <script src="https://cdn.lr-ingest.com/LogRocket.min.js"></script> <script>window.LogRocket && window.LogRocket.init('app/id');</script>
Hey there, want to help make our blog better?
Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.
Sign up nowLearn how to manage memory leaks in Rust, avoid unsafe behavior, and use tools like weak references to ensure efficient programs.
Bypass anti-bot measures in Node.js with curl-impersonate. Learn how it mimics browsers to overcome bot detection for web scraping.
Handle frontend data discrepancies with eventual consistency using WebSockets, Docker Compose, and practical code examples.
Efficient initializing is crucial to smooth-running websites. One way to optimize that process is through lazy initialization in Rust 1.80.
9 Replies to "The 10 most important JavaScript frameworks of the past decade"
Jest should definitely have made this list.
Haha if it was a framework then definitely. Check the entry for Mocha 🙂
I’d rather call Jest a framework and Mocha a library. To get the same features as Jest developer needs to install Mocha, Chai, Sinon and JSDOM.
Curious why React is top of the list if that’s the reasoning Jest was left off?
I think you’d have a hard time describing exactly how Jest a s *not* a framework in any significant way that is different from a superset of functionality vs. Mocha.
jQuery should be number 1 for its impact over the last decade. It doesn’t belong as an honorable mention… Especially not when it’s used on 80% of the top 1 million websites, whereas React/Vue/etc. aren’t even close.
Your reason for Jest not making the list is totally defeated by putting react on that list… Great work though
There’s no denying that jQuery is definitely one of the biggest JavaScript libraries.
However, it was released in 2006 and all the other entries were released between 2010 – 2020
Ember should be on this, while it’s not the most popular, it paved the way for many frameworks with concepts like “Two Way Binding”, # Routing, Ember CLI and more.a