A Winning Strategy for JS Frameworks

Posted Oct 29, 2015 by in Blog, Ideas, Strategy, Technology + Devices, Web

Angular, Backbone, Ember, React, Knockout, Batman, Bacon…it sounds more like a graphic novel than a list of JavaScript frameworks. At times it even feels like fiction with the number of JS tools that keep popping into existence. And it certainly can be overwhelming. Is it MVC, MVVM, OO, functional? Is it even JavaScript at all? Or is it CoffeeScript or TypeScript? Do I need transpiler to run it? Will it actually result in a better product?

To avoid framework fatigue—and to do your best work—that last question is really the only question that matters.

The Value of Frameworks

It should be clear to anyone who has been hacking away at the most misunderstood language (JavaScript for the uninitiated) for any amount of time that some JS tooling is desirable—even critical. Vanilla JavaScript in it’s current implementation by the most common browsers is still a bit of a wasteland. It lacks many modern features that we take for granted with other languages and is almost completely devoid of convention. It would be a disservice to any client or product owner to not fully vet existing and available tools.

What’s important is that a framework has the right features to efficiently execute the current task in the current context.

Getting Back to Basics

Developers need to start with a rock-solid foundational understanding of what the technology means. Then, we can effectively and efficiently leverage the tools where it makes sense, but also go low-level and build custom code where there are gaps.

A big misunderstanding among developers is that different frameworks facilitate specific functional requirements. For example, “I need Angular because I can’t do AJAX or animations without it.” But, at the end of the day, these libraries and tools are just vanilla HTML, CSS, or JS wrapped in a nice package. They do make certain things easier to write, but no library is going to extend the abilities of the browser.

Taking a Strategic Approach

The open source community brings with it an immense brain. Social coding is a reality, developer collaboration is resulting in rapid iterations on critical software. However, it can be difficult to separate the forest from the trees, and that is why, at Modus, we rely on our solid understanding of the core languages. Without this, the growing number of offerings from the community is noise at best and technical debt at worst.

We are not interested in whether one framework is decidedly better than another. Arguments on that are extremely subjective and, honestly, a waste of breath (and often a tasty beer). What’s important is that a framework has the right features to efficiently execute the current task in the current context. We welcome new technologies and always vet them internally before recommending them for client work. But we often reject “the new hotness” and sometimes we stash it for later when it’s more mature.

There are some tools that have become ubiquitous and trusted among our developers. jQuery is a fine example of that. But we strive to evaluate our past decisions, vet new options, and continually pivot as we invent the digital future.