Development Environment

Let's define what our development environment will look like.

Foundation

We're going to build our development environment on top of Node.js. Today, almost every modern JavaScript web application is built on top of Node.js. You might say that is a bold statement, which I would agree with. The trend we're seeing today is that the de-facto JavaScript application has a Node.js dependency somewhere in the app. Either the app is using Node as the actual server with a tool like express/hapi, or it is using it for the build tools such as grunt/gulp/webpack.

So what is Node.js? To quote their wikipedia:

"Node.js is an open-source, cross-platform runtime environment for developing server-side web applications. Node.js applications are written in JavaScript and can be run within the Node.js runtime on OS X, Microsoft Windows, Linux, FreeBSD, NonStop, IBM AIX, IBM System z and IBM i. Its work is hosted and supported by the Node.js Foundation, a collaborative project at Linux Foundation."

This is good news, since Node.js is supported on the three main OS players: Windows, OS X, and Linux. If you don't already have a copy, you can download it here on their downloads page. We're going to need it to continue with the tutorial.

It's exciting times in the Node.js world right now, recently they just announced their latest version, 5.0. Node.js is actively overseen by the Node.js Foundation. It is also actively maintained by the community and is continually improving, including adding support for the latest ES6 features. What does this mean for the developer building on top of Node.js? It just means that Node.js is going to continue getting better. We'll likely see more adoption of Node.js in the coming years as it becomes more mature and gains wider adoption. Now is a perfect time to get acquainted with Node.js and discover the wonderful benefits it can have for you development productivity and career.

Package Management

A really nice feature of Node.js is that it includes a bundled package manager, npm, for free.

What is npm? To quote their docs:

"npm makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you're sharing."

The great thing about npm is that it has a huge library of open source libraries, modules, components etc., mostly written in JavaScript, which we can leverage in our applications. As we go forward we'll see how to install these dependencies from npm and save them so we can install them again in the future if we move our application. If you'd like to find out more yourself, I encourage you to check out their docs!