Are Javascript Frameworks Necessary?

Are JS frameworks really necessary?

Learning React, Redux, then you have to learn Vue for your next job / assignment, then Angular, then Gulp, then the new framework today, the new framework tomorrow. Then the next day its the new flavor of the month. Its just madness.

What is wrong with just getting really good at Vanilla JS and writing applications in that?

I don’t see that these frameworks accomplish anything that Vanilla JS doesn’t. I feel most if not all apps and websites can be finished with HTML, CSS / SCSS, and VJS.

Are we not just overcomplicating everything with all of these frameworks?

What am I missing here?

2 Likes

Frameworks handle common tasks and logical flows that developers encounter. Without a framework you have to scratch build a bunch of stuff every single time, which wastes time and increases the potential for bugs.

The nice thing is, if you know JS, then you can pick up/change frameworks as needed.

1 Like

Hi,

I’m far from a professional but I’ve been coding for a while now. The exercises we work on in FCC are not that big and complicated and can often be made with vanilla js, no frameworks or libraries.
But if you work in a company with monster sites like facebook, twitter, wikipedia… these frameworks become necessary. Otherwise, you’d drown in the code and your code has to be worked on be different people so in such a company you need to write readable code and react and jquery does make it all a lot more readable.
So, less code, more trustworthy code, faster working code and more readable code. React was developed by facebook for a reason.
I do enjoy working something out without all the fancy bits because it helps me to really understand what’s going on. Then I like to add library after library, one after another, just to see what happens.

Greets,
Karin

Greets,
Karin

1 Like

Yes, you can do everything in Vanilla JS, but it’s much faster using a framework.

If you can walk from Berlin to Amsterdam, then why do you need a car? It’s overcomplicating it.
Frameworks make it easier to do stuff, update elements, create elements, you name it. From what I’ve seen, frameworks don’t change that much from each other, they’re all based on sort of the same principle (at least the ones I’ve seen).

Just try to create a div with a p element as a child in VanillaJS and then in React. Which one is easier, faster, more readable?

2 Likes

Everybody had good points here, I’m gonna add one more point here.

As developers, we want to DRY codes (Don’t Repeat Yourself), which is pretty self-explanatory. This is one of the big reasons why frameworks exists. As @JeremyLT told us, they handle the common tasks that devs encounters.

Most of the times it’s the tasks that we’re used to and is easy to do, but it takes a lot more code writing to do it over and over again. Let’s take the example React. You don’t have to worry about creating elements from scratch and give it attributes then append it to the root div. In React, all you have to do is handle your logic, your JSX and then let React handle the repeated common tasks that will otherwise take you longer. One of my examples is that it took me 2 months to build a website from scratch using VanillaJS, and it’s not even fully complete, while using Svelte (another JS framework), it only took me 2-3 weeks.

Frameworks are awesome, but remember, it’s purpose is to do common task that YOU KNOW HOW IT WORKS. So don’t accelerate yourself, try learning VanillaJS first, learn how things work, learn how hard it is to write the same code over and over, then learn frameworks. Then you can appreciate how useful they are and the fact that you already know how they work, it will help you do more than before.

Hope this helps understand more. Sorry for the long paragraphs. Hope you have a good day, and Happy Coding :slight_smile: !

4 Likes

Thanks for the feedback so far.

I have been learning JS for the last year or so and felt I have gotten pretty good at it (or at least “good” from a junior standpoint) so I thought it was time to jump into React.

I found React so confusing that I just kind of gave up.

Then I tried Angular. Same result.

Then I started looking at all the other options out there and I was like “holy shit!” are we not just creating more work and complexity for ourselves.

I then dived into Vanilla JS and have build a lot of apps / projects in that and it seems at least to me to be more logical and I actually like it and can actually build meaningful things that work.

1 Like

Sure, you can build small things yourself in Vanilla JS. But any professional work will use frameworks. That’s just the nature of the beast. It lets you build larger, more meaningful, more complex things that work much faster once you get the hang of it.

1 Like

I’d say that Angular is not the most beginner friendly framework.

Can you show us some of those apps/projects? Because if it’s something basic like FCC projects, then yes, vanilla JS would be enough.

1 Like

Hi,

Your post was written some time ago but I still want to reply because what you write resonates deeply inside me. I have so been there.
My advice: go for the vanilla. I did that. At some point, took me years to be honest with you, I was ready to tackle React and other libraries. The first library I would start with is jquery. Jquery is really not that hard and simplifies code a lot. Learn the vanilla way as well, it will deepen you knowledge. Leave React for later.
The thing is, I notice this myself, the better you become at coding, the harder it becomes to understand the beginner. You forget how much you know. Some experienced coders can be really naive. It’s not bad will, they’re not smarter than you are, they are naive and they forgot how they were in the beginning. It’s like being bitten by a vampire, at some point you turn into one yourself. There was a time that articles on MDN were completely incomprehensible to me. A very long time, I may add. Now I don’t understand what’s not to understand. I’ve gotten used to this technical language. I’m turning as I write.

Greets,
Karin

1 Like

Necessary, no. You can write a program in anything that’s Turing complete. However, try to imagine writing this forum software, or the FCC platform itself without any kind of framework. Even if it were successful, I guarantee that any good implementation of such an effort would itself be a framework.

At the end of the day, frameworks are just code that you reuse. Shakespeare may have coined many new words, but he didn’t reinvent the language patterns he wrote plays in.

3 Likes

I love writing in vanilla C. The simplicity is great. But I’m limited with vanilla C and cannot write as good or complex of code when I ignore the tools others have written.

If you want to be a professional, you’ll just need to learn how to use frameworks and libraries. It’s hard, but it is doable, especially if you have a good understanding of the language vanilla.

1 Like

The frameworks were created to solve problems, not create them. Sure they move some of the complexity to framework-specific parts, but they also greatly reduce the complexity of state/view management. Pretty sure if you just give it enough time and learn one of the frameworks you will find it much easier than having to manually do state/view management.

It is also easier to scale, compose and reuse and you do not have to reinvent the wheel every time you start a new project.

Also, remember web dev is not just a one-man-show and for teams (or any collaboration) having a common foundation and methodology is pretty much a necessity.

2 Likes