DEV Community

Dawn Cronin
Dawn Cronin

Posted on

An Ode to Node: An introduction

I was having a conversation with some of my colleagues in bootcamp a few months back when we were deciding whether to attend a node.js meetup. It went something like this:
"What even is node? Is it a framework, or a language, or a tool"

"Google says it's a runtime for javascript"

"But what does that even mean?"

" I feel like we can't attend if we don't even know what it is..."

This might not represent everyone's experience, but knowing about javascript did not give me an insight on what node was all about.

Let's first start with talking about Javascript.

Javascript

Javascript is a scripting language that was created as a way to make webpages dynamic. Before javascript, webpages were static, and didn't change much based on your interaction with them. If you interact with a map, or have information change based on scrolling or time, then you've been witnessing the magic of javascript.

Javascript is one of the three web technologies, along with HTML and CSS. Javascript is interpreted by the browsers's built in javascript engine, such as chrome's V8. It was originally only built to make webpages more dynamic, so there was no reason to run javascript outside the browser.

Node

As the use cases of Javascript expanded, it became desirable to run javascript on the server side. However, this wasn't what javascript was designed to do. If you could use javascript on the server side, you could unify your client and server by only using one language.

Node was built using chrome's V8 engine, along with other features that were required to interact with a server's file system. It is nearly identical to javascript in the browser, except your event system and global isn't browser based anymore. Basically if you learn javascript, you've already started learning node! So back to the question, What is node? It's a runtime for javascript, based on your computer, rather than a browser.

What can I do with Node?

Since node allows you to run javascript on your server, you can do anything you would have done with another server side language, like ruby or python!

Where Ruby has Rails, Node also has frameworks for building out a backend or API. Express is a light weight web application framework. Similarly, you can build CLIs and programs that interface with the file system.

To summarize, with node, you can be a full-stack developer, while learning only one coding language. Amazing! What are your thoughts on full-stack javascript development?

Top comments (1)

Collapse
 
jacobmgevans profile image
Jacob Evans

Well said. My thoughts is, it's great but I'm biased lol 😆