Will JS Frameworks spark a Front-end Revolution?

Hello Everyone,

In this blog let’s talk about a futuristic perspective. What are web developers looking for in their tech stacks? I think it mainly comes down to two types of performance: You want rapid development and you want the UI to be snappy. Sounds simple enough.

But the implied context is a set of mechanics that, above all, work correctly. Underneath all JavaScript frameworks and technologies are choices among paradigms: functional versus object-oriented programming, MVC versus MVP versus MVVM, and so on. These choices are heralded by various meta-developers as the best way to avoid hurting ourselves because there are plenty of pitfalls in front-end development.

In other words, front-end developers will need what they’ve always needed: Technology that makes state management simple and reliable, even in complicated situations.

Often, we mere mortals need to choose JS frameworks to use now , and not after weeks of research. In that case, the default is clear: Go with what you know.

But when we’re disillusioned with what we know, we might take a step back: “Dependency injection makes sense to me, so which DI-based framework delivers the smoothest developer experience?” (If you really grok it, you might do your own DI without using JS frameworks.)

Or maybe the stacks we’re familiar with are no longer cutting it in terms of performance. Especially if you’re interested in supporting the ever-growing segment of the population with machines less powerful than what the average developer uses, maybe you’re asking, “Which front-end JavaScript frameworks deliver a reasonably fast UX on low-end hardware?”

Making a Fully-informed Choice (Good Luck!)

Almost always there are more choices than time to properly choose among them. Even just choosing among Vue.js, React is difficult for newcomers: It’s easy to find someone arguing why Vue.js is the best for every project, no questions asked and just as easy to find someone who isn’t quite as convinced, two years after switching from React. Still, others would argue that the best approach is to avoid frameworks altogether or to compose your app from various “micro frontends”. So how do you navigate this, especially if you’re open to choices beyond The Big Three?

Rather than try to be exhaustive, we’ve assembled a taste of various client-side approaches that professional developers in the Toptal network have had experience within a JS context: AMP, Svelte, Cycle.js, Mithril, Hyperapp, Preact, and Aurelia.

In the comparison table we put together for the main article, I had originally asked each author whether they thought the JS framework they covered lived up to its aspirations. I left this out, because the answer in every single case was yes! If this is true, why aren’t more people using these different JavaScript frameworks?

Front-end Framework Popularity and Critical Mass

It’s always difficult to obtain reliable usage data, but these projects are all firmly-established enough to be practical alternatives. It’s true that in a professional context, you want to make it easy enough to hire someone with appropriate experience to maintain or extend your code. This carries considerable weight, especially with project managers.

But a solid counterpoint to this thinking is that maintainability isn’t necessarily about popularity. The game is always changing, and it’s more important to produce code that future developers can understand, even if they’re not specialized in its particular dependencies. Three years from now, Angular developers won’t be waiting around to work on your legacy project, after all—they will have shifted their focus by then as well, even if it’s only to newer architectures within the Angular world.

Some of our authors assume outright that the alternatives they cover here will never become “the next big thing.” The hope there, instead, is that their existence provokes the most popular JS frameworks to adopt their best features. They would answer our title question: To be brutally honest, maybe not. Nonetheless, as with any technological alternatives, professional developers can learn a lot from exploring them.

Also, you never know—some of these approaches are learning from each other. Vasiliy Ruzanov details in our main article how the Elm Architecture is finding its way into front-end development via Hyperapp. One Mithril JS developer celebrated that the new Svelte JS basically has Mithril JS streams; as Justen Robertson describes for us, streams are also key to the architecture of Cycle.js.

The smaller development communities inherent to alternative JavaScript tech may be able to shift gears more nimbly than those of mainstream JS frameworks. Will that help them gain traction? We’ll have to see.

What Can Be Learned from AMP JavaScript, Svelte JS, Cycle.js, Mithril JS, Hyperapp JS, Preact JS, and Aurelia JS?

Maybe you end up using these modern JS frameworks and other front-end technologies for a serious project. Or maybe you experiment with them and decide to stay mainstream. Either way, our hope is that in our front-end roundup, you’ll at least discover something inspiring—something that helps you see web development in a new way. You’ll find our front-end framework comparison comes complete with an apples-to-apples companion demo for each of the technologies we cover.