JavaScript frameworks
Tags: javascript, webdev, beginners, frontend
Published: 2023-07-23 12:08:53

##What are JavaScript Frameworks?
Javascript frameworks are tools or libraries that help developers in developing an app. These use a completely different syntax of JavaScript or just add functionality.

---
###What we'll discuss:
- [Do you need a framework](#ch-1)
- Most Popular Frameworks
   - [ReactJS](#ch21)
   - [Svelte](#ch22)
   - [Angular](#ch23)
   - [Vue](#ch24)
   - [Ember JS](#ch25)
- [Which framework is best for you](#ch-3)


###Do you need a framework?<a name="ch-1"></a>
You have a framework, but do you _need_ it?
Well at one point or another you will need a JavaScript framework. It also depends on your use case, for example if you are making a simple app for yourself or if the app does not need:

- Code organization and maintainability
- Cross-platform development
- Rapid development
- Dom manipulation
- Extremely good and efficient SEO

But if your app needs any of those you should consider using a framework. Your choice of frameworks can range from a simple one like HUGO or Astro to a complex multi-purpose one like React, Angular or Svelte.

##The most popular JavaScript frameworks
Here's a list of the 5 most popular JavaScript frameworks in 2023:

##ReactJs:<a name="ch21"></a>
![ReactJS logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wki5twwpc0c3c9auehi.png)
ReactJS is a JavaScript framework that is created by Mark Zuckerberg(Meta). It is used to make Single Page Apps for the web, and also janky and jittery mobile apps with React Native.
I would recommend learning NextJS frist, with this you can pretty much create whatever you want. It is also the most popular framework of the React family.

Learn this to land a job at:
- Meta(formerly known as facebook)
- Pinterest
- Netflix
- The New York Times

#### Pros:
- Easy to learn
- SEO friendly
- Extremely good performance.

####Cons:
- Lots of boilerplate code
- No specific way of organizing the code, hence making it difficult to collaborate and manage the project properly.

####Learning Curve:
The ReactJS framework has a pretty balanced learning curve and you can learn the essentials in about 2 weeks or less.(Took me about 10 days, to learn NextJS.)

##Svelte<a name="ch22"></a>

![Svelte logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1zqy2gbfhyo7md0gjqr.png)
Svelte is the most loved framework according to developer community. There are many reasons for this, here's a list of the biggest reasons svelte is the most loved framework:
- Amazing Developer Experience(DX)
- Great Docs
- Big and active community
- Less boilerplate
- Small framework size
- Simplicity

![Developers love Svelte](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/586jxa25cg4jo8s6tvt9.png)

Some disadvantages that come with the _"most loved framework"_ are:
- Limited tooling
- Less employers
- Smaller developer community

##Angular:<a name="ch23"></a>

![AngularJS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d8fgwiiqmqu29uuneco2.png)

Created by Google, we have AngularJS.
You should consider learning Angular if you want a job at:


![Google --> AngularJS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a5pjo6nff93o1f7v9oj1.png)
AngularJS is an open source JavaScript framework, created on 13th September 2016. It is used by many companies such as:
- Vevo
- NBC
- Udemy
- Upwork

####Learning Curve
While angular has great applications and is very famous, it has one problem, the learning curve. I would like to express all of the problems with the Angular learning curve with one image:
![Meme depicting angular learning curve](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/voz8m4i8sxcylp38ec6v.png)
_Courtesy of u/coredev on reddit. Originally posted on r/angularjs 9 years ago._

####Pros:
- Huge community of developers
- Great flexibility
####Cons:
- Verbose code
- Really bad learning curve
- Not the best performance(compared to ReactJS)


##Vue<a name="ch24"></a>

![Vue Logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gq196xgu9qzcl7jqi1si.png)
Vue is known because it is easy to learn and flexible. It is most used by individual developers and smaller teams. Another popular framework specializing in [progressive enhancement](https://developer.mozilla.org/en-US/docs/Glossary/Progressive_Enhancement) is Petite Vue. Created by Evan You.
![Evan You](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zk93zq6ndmshtw46kp5c.jpg)

####Pros:
- Unlike AngularJS, Vue is extremely easy to learn, making it a go to language for beginners who want to get into web development.
- Performant
- Flexible
- Component Based(much like ReactJS)
- Has an official CLI(Command Line Interface)

####Cons:
- Smaller community and ecosystem
- Not used by a lot of big companies
- Community stability

##EmberJS<a name="ch25"></a>
Created by Yehuda Katz, initially released in 8 December 2011. It is used by over 510 companies. Some including: Microsoft, Linkedin etc.
![EmberJS logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j51gpw0il1ni18j4wdb9.png)


####Pros:
- Good system for code organization.
- Comes with a powerful CLI(Ember CLI)
- Reduced need for explicit configuration
- Great routing
- Active community

####Cons:
- Steep learning curve
- Very big framework
- Slower rate of community adoption
- Less flexibility

##Which framework is the best for you?<a name="ch-3"></a>
While choosing a framework you have to keep one thing in mind, "that is there is perfect framework." 
I personally like using react because of its big and active community. Getting help is really easy. But as of the best one for you:
If you're a beginner I would recommend learning something simple like Vue, or React. They both are really good frameworks and as a beginner you can work your way up the programming ladder in practically no time.
But really it depends on your project needs. If your main priority is to make a simple SPA(Single-Page App) with good SEO you should learn React. If you just want to learn something new as a beginner you should chose Vue. And if you are here to create a big app that requires good code maintainability, Angular is the best.

With that I would like to conclude this article, and always remember:

> There is no perfect framework. ~Literally almost every single JavaScript developer.