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
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.
- Was released between 2010–2020
- Still in active development
- Significantly influenced the way a large number of developers build software
- May (or may not) have spawned other libraries
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 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.
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.
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.
4. React Native
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.
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.
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.
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.
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.
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.
This is why I felt it would be unfair to group it along with pure JS frameworks above.
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.
Plug: LogRocket, a DVR for web apps
LogRocket is a frontend application monitoring solution that lets you replay problems as if they happened in your own browser. Instead of guessing why errors happen, or asking users for screenshots and log dumps, LogRocket lets you replay the session to quickly understand what went wrong. It works perfectly with any app, regardless of framework, and has plugins to log additional context from Redux, Vuex, and @ngrx/store.