Beyond JavaScriptart 1

We live in the JavaScript jungle nowadays, because we communicate via computer screens. But JS has several flavors. There is a succession of syntax changes that make it all the more confusing. Textbooks on the subject follow ECMAScirpt conventions, the Ecma International is the standard bearers for JavaScript. But which version is in common use at any one given time? If you use the latest, you have to have your code mediated by things like Babel, which for a better term, is a JS compiler that cures all ills. That's fine, but now we have to apply Babel within our code. How's that done? Enter the code libraries, frameworks, and JS support systems.

It might be a good idea for completeness to mention the JS evolution. JS was purposed for client-side use by the browser to manipulate dynamic content with a webpage. Then Node.js comes along and frees JS from the browser. Stand-alone use of JS using Node has become a platform for all sorts of network based code including robot interfaces like the Johnny-Five library. The main drive behind Node is to write server-side code so there is a common language from client to server to maximize efficiency. This also encompasses the transport media. XML has been replaced by JSON as the best way to move network data. JSON (JavaScript Object Notation) is a bit tongue-in-cheek in that it is more formal that what is really required by JavaScript. JSON requires double-quotes around both the key and value parameters. Normal JS objects only double-quote the value. More syntax jelly.

Node has become a dependable means to build apps. It has HTTP messaging built in. This feature has become the purview of a library called Express. So through various Middleware and libraries, Node has become a powerful way to build full-stack applications.

One of the best approaches to a client-server web app is to use Node for the server-side and React described as a framework now, upgraded from library. Why? Because React is written in JS and maintained by Facebook, so it's going to be around for awhile and is Node compatible.

You have to conclude that JavaScript in its many forms is a vital link to becoming a viable programmer that communicates via the browser. That's covers just about everything, because we need to see and interact with data, images, phone screens, kiosks, you name it.

How to Get Your Node Onart 2

I like to think of Node as a Big-block V8 engine, since Google engineers labelled their original project as V8 - a JavaScript execution engine. Node's binding are written in C++, so it is cross-platform compatible. One of the great utilities that comes with a Node download is the use of their module package manager NPM. There is a vast library of modules that make Node a powerful choice to code with. Both relational and non- relational databases are supported via the use of JSON data structure.

Central to start to use Node is a download from www.nodejs.org. From here, take a course from the many YouTube gurus. React is a next good step.

It can't be overstated that all modern coding involves a lot of salt and pepper from modules that are folded into the recipe. All these libraries and frameworks depend on a lot of modules. With Node, the NPM package manager loads them into a directory called 'node_modules' and lists them in the 'package.json' file. Before you run any Node code, these modules have to be activate from the command-line terminal i.e., 'npm init' or 'npm install.' The former gets the appropriate files in place. Once your app is established, and you move or copy to another location, the 'node_modules' file is missing or can be deleted, because a 'npm install' is commanded an the 'package-json' is used to reestablish the modules. You can see there is a lot of protocol just to get a Node app up and running. Since the command-line is so important, it is best to be in a Unix/Linux environment.

So the take away from all this is a modern coder working with apps that is the browser screen to communicate with both a client and server pushes you to learn not only HTML/CSS/JS but to extend that base to include Node.js and all that implies.