DEV Community

Robbie Antenesse
Robbie Antenesse

Posted on

Should I Use "Popular" Frameworks If I Prefer Something Else?

One of my biggest struggles as a web developer is the pull between making an app that's as lightweight as possible and one that's as understandable and portable as possible.

My desire for extremely lightweight apps stems from the fact that most of the computers I've owned in my life have been hand-me-downs from family and friends and are therefore not remarkably powerful. My very first personal computer was a tiny Asus EEE PC with Windows XP on it, and I spent countless hours trying to tweak it to run as efficiently as possible on the hardware before I finally gave up to find the lightest Linux distro possible for it to run instead.

At the same time, my desire to write understandable and portable (by which I mean "portable knowledge" as in the requirements are common and widely known) stems from my love of open source development. I have thrived on open source software all my life because I've never been able to afford the "real" versions that are always so expensive. Now that I'm experienced enough, I want to give back and add to that pool of open source software, and I feel that the best way to do that and foster an environment of knowledge sharing, the code should be written in a way that people who want to contribute will be able to generally understand.

The reason I feel that these desires are at odds is that often the most popular solution (in my case, React or Angular) is frequently bulky and resource-intensive compared to other lesser-known frameworks (like Choo, which I adore, or Svelte). I like React as much as the next dev, but it's just so much bigger than Choo, which means that it takes up significantly more memory in the browser and can cause major slowdowns on less powerful devices or devices on slow data plans. But React is the framework right now (or Angular or Vue or whatever), so I want to use it to make sure the most people can understand my source code (plus FOMO is probably involved).

There's also the fact that a lot of new dev jobs are looking for people with experience in those popular frameworks. I can personally make it work a lot of the time because I have a pretty firm grasp on JavaScript in general and can learn frameworks quickly, but that's not helpful when they want you to already have the experience. Should I cater my open source projects to the kind of job I want to get or should I use what I enjoy using most?

I unfortunately don't have an answer to any of the questions I've asked, and I'm sure it's mostly a matter of personal opinion, but I really want to hear what this community thinks. I'm starting a project that I think might get some community involvement, and I want to make sure it's both easy to contribute to and lightweight for servers and users to run.

What do you think? Is this a false dichotomy? Is there a good way to handle the opposing options?

Top comments (5)

ben profile image
Ben Halpern

I don't think you need much more than a "baseline" of popularity to ensure bugs get fixed, new features get implemented etc.

When things are over-popular, there are plenty of problems with project scope creep etc. You don't always need the most popular things.

dorshinar profile image
Dor Shinar

I agree. React and Vue are not the only options (just naming them because they seem the most popular), but you do want to make sure you don't pick an abandoned framework (backbone? I don't really know the state of it so I might be wrong here). Although huge communities and clear roadmaps often come with popularity, so I can't say that it also shouldn't be a criteria.

rumkin profile image
Paul Rumkin

If your project will be useful, people would contribute it even if it's a single-file. And will help you to rewrite it to more suitable framework, if it would be necessary. The value goes first.

codemouse92 profile image
Jason C. McDonald
marcoslooten profile image
Marco Slooten

I'd say go with your gut. Having experience with a framework is more important than which framework. You could always start a side project in a different framework to show you can pick it up quickly.