What Node.js actually is?
Tags: webdev, node, javascript, programming
Published: 2023-05-29 07:51:17

This is my first writing!!

When I first met node.js, my initial thought was, Is this a framework? Or even a new language, or simply a javascript library? Some even claimed that javascript and node.js are interchangeable! So I was completely confused at the moment, what exactly does it mean?



![A wallpaper displaying the complexity and confusion of understanding the term](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xuct4t76fv53aozo09a4.png)

From the [Node.js official Website](https://nodejs.org/en), it is stated like this -


> Node.js is an open-source, cross-platform JavaScript Runtime Environment.


If I try to break it down, we will get three main points here

- open-source
- cross-platform 
- Runtime Environment

Now, we will dive down into them a little more elaboratively,to learn clearly what Node.js is - 

## Open-Source
in simple terms, when we say something is open source it basically means - Any one can access the source code, examine it and can make changes or fixes bugs that are present.


![A wallpaper of open source](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dyje8suj1cjhzvql0skq.png)




Now, there are some advantages of making it open source -

1. Quick Bug Resolution : As users can access to source code, they can identify and report the bugs that they encounter, this leads to faster resolution of the bug and software stability.

2. User Driven Improvements : Users' involvement and feedback provide developers with important insights, guiding modifications that correspond with real-world needs and increasing the program's functionality.

3. Empowerment : Exploring features, modifying settings, and tailoring the program to their needs allows users to maximize productivity and accomplish desired results.

Moving on to the next sections!

## Cross-Platform 

in simple  terms it means that, the program can run on any operating system or hardware architecture. Varying from Windows,Linux,Unix and MacOS.


![Cross platform image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yo0pify6iqdc2zsgi3ro.png)



And now the last and important section!

## Runtime Environment

> A runtime environment is a precise environment in which programming language code can be executed. It contains all of the tools, resources, and infrastructure required to run the code properly.

For example, Node.js acts as a runtime environment for JavaScript programs.

**And now why and how?**

- It offers a set of libraries, functions, and APIs that let developers run JavaScript code outside of a web browser, making it appropriate for server-side applications and other non-browser environments.

- Developers may construct scalable as well as effective JavaScript applications by leveraging the Node.js runtime environment's features and capabilities.

Now, if we want to know about the frameworks and libraries. They refer to -

> Framework is a pre-written, reusable codebase that makes web application development easier by providing established functions, modules, and design patterns. While library is reusable code collection that simplifies programming by providing ready-to-use functions and utilities for common tasks.

So, we can clearly see it is not library,framework or any programming language. It is also not another name for javascript!

In one line summary, Node.js is JavaScript runtime environment. And it is developed to make possible that javascript code can run on server side.