DEV Community

Jonathan Avila
Jonathan Avila

Posted on

Why Are There So Many Javascript Frameworks, And How Do I Choose The Best One?

For the most part, I've mostly programmed in backend develppment, but in an effort to move towards my goal of becoming Full Stack Developer, I've started to teach myself Javascript. I want to eventually learn a Framework as well, but I'm a little intimidated by the sheer number of Javascript Frameworks in existence right now. Can anyone shine some light on how to pick up the proper Javascript Framework to work with? Are there any Frameworks that are better for Python/C++/PHP backend?

Top comments (6)

kosich profile image
Kostia Palchyk • Edited

Incurable disease has lots of treatments
an old saying (if I remember it right)

As I understand the current situation: we have so many frameworks because we don't know how to do it right. Every framework tries it's own slightly different approach, though there are things common to most frameworks*:

  • components

    Modern frameworks choose components as their building blocks. Everything from a whole page to a simple username badge can be a component. Components can be nested and reused.
    A component would define how it should be rendered via either template (angular et al) or via virtual DOM (react family).

    Also, components usually have lifecycle events, like mount, update, and unmount that help you define your logic more precisely.

  • state management tool
    Nowadays almost every framework has it (redux, mobx, ngrx, etc)
    That's just a way to structure data relations in your application. You have one component that requests username and you need several other components to access it? — put username to that state management tool and let other components read from it.

Generally speaking, that's it. The differences are minor, though they might seem huge at first glance.

Pick any popular one and try it. Maybe, search for a job you'd like to apply to and see what skills they are looking for. Among frameworks, React is the most popular one, so it should be among safe options.

Also, since you're just starting your JS journey — it'd be very helpful to learn common JS practices as well. And, I guess, learning promises is a must. (Unless you pick Angular — then you can jump to Rx right away)

The end. Happy coding!

* Well, JS based ones. Well, those few that I know. Hm, with exceptions surely.

P.S. I assumed you were asking for a front-end framework because there are several back-end JS frameworks too 🙂

P.P.S. I've been doing front-end for a while now, and neither do I know all frameworks, nor feel comfortable that there are so many of them.

genspirit profile image

It really is going to come down a lot to the specific project you are working on and your preferred coding style as for which is going to be the "best". The best way to figure out is to try several. I wouldn't delve too deep but just enough to actually get a feel for the style and architecture of the framework.

As you work with javascript more you will likely get a better feel for how you prefer to architect your projects and as such lean more towards specific frameworks.

juancarlospaco profile image
Juan Carlos • Edited

Coming from Python, you can try Nim,
Python like syntax, compiles to JavaScript,
version >1.0, >1500 packages, compile to WebAssembly, easy to learn,
has Frontend-only tools and frameworks, is basically like Svelte, heres an example:

Or you can try Svelte, or both.
You can compile to C++ and interoperate with C++ code with Nim BTW.

ishalimi profile image
Halimi Ismail

Hello, I've been in your situation I always used JQuery for my projects when I needed to use javascript, But after that I was obligated to use React and I really loved it but this doesn't mean that React is the right choice for you. my idea is try it if you love it stick with it else find another framework.

jonathanavila profile image
Jonathan Avila

Thanks for the reply! What are your opinions about Vue.js as compared to React? I hear that between the two, Vue has less of a learning curve.

jwp profile image
John Peters

I'm Typescript and Angular working a major corporate migration. Study just those if you are OOP. React can use Typescript too.