Popularity often comes with misconception and rumours. Due to the fact that Node.js became very popular, there are a lot of false beliefs about this technology.
In this article, we will bust some myths about Node, explaining in detail what the truth is.
In the end we also present a few app types Node.js is best for. Why? Because (again!) there are a lot of misconceptions about that.
Node.js development in a nutshell
Node.js is a server-side runtime environment used to build fast and scalable applications. It is light and lets you create a web server in just a few minutes.
Ryan Dahl, the inventor of Node.js, states that being inspired by Gmail, his goal was to devise a system for building websites with real-time push capability. So the event-driven paradigm became the heart of Node. Unlike the previous “request/response” paradigm, finally, developers gained the possibility to make 2-way connection websites (client and server) with free data exchange.
Myths and truths about Node.js
But often people face certain misconceptions about Node.js development. Here are the most common myths busted.
- Node.js is a framework
- Relies on Chrome V8 engine only
- It does not support multi-threads
- Beginner developers can’t work with Node
- It is an open source and cross-platform system for building web applications
- It does, providing asynchronous and event-driven APIs
Facts about Node.js development
You can do it with other programming languages, but it isn’t that easy. It either requires transpilation and dealing with much a smaller community (ex. TypeScript, CoffeeScript, Elm) that works only in some browsers (ex. JScript works only in IE), using a deprecated technology (ex. Adobe Flash, Java Applet, Silverlight, Moonlight) or having a significant overhead (GWT requires much memory and has a long compilation time).
#2. Powered by Google Chrome
Besides that, with Google developer tools, you can also perform debugging tasks. In Chrome 57+, there is the Node.js debugging feature by default, and you can use it to eliminate errors both in front-end and back-end.
#3. Reinforced by JSON
#4. Sharing is caring
The Node.js community is open and friendly, ready to share any packages of code. Node ethics allows and welcomes this approach, making it simple to do so. Any author can publish code or create modules in a public repository. In legal terms, there’s the MIT open source license in play, taking care of all intellectual property issues.
You may find about 475K code packages in the NPM alone, which has grown from package manager to a repository. More on that in the next paragraph. Thus, it is very likely that when you face some challenge/task with Node.js development, there is already a solution.
#5. NPM, modules & instrumentation
This feature indicates that apps on Node.js consist of smaller modules that you can share. You can compose and manage each of them, as the nature of developing such modules with Node is care-free and facilitates experimentation. Each package usually takes care of one task, so it is highly effective.
One final fact is that Node.js comes with fine instrumentation, documentation and best practices. This is aimed at helping at every stage of app development, best performance, and readiness for production.
It would also be appropriate to list what pros and cons there are to Node, so let’s do that.
Pros and cons of Node.js development
Pros of Node.js:
- A runtime environment supporting the caching of modules
- Event-driven input/output (I/O) ensures better request handling
- Same code for both server-side and client-side = painless deployment of web applications
- NPM – the biggest package manager in the software world
- It is also possible to stream large files
Cons of Node.js:
- Inconsistently enhancing API
- Not an optimal solution for tasks intensive on CPU in comparison with low-level languages like C, C++, C# or Golang
- Split opinion about the asynchronous approach
What is Node.js great for?
So while there is some debate about appropriate Node.js use, what are the areas where Node shines? Below are some examples.
Chat. A most typical real-time application, a messaging chat application shows all the best of Node.js. Multiple users, big traffic, intensive data and running across devices. Also good to learn Node while making a chat, as it covers almost all the paradigms of a typical Node.js app.
Data streaming. Leveraging the fact that HTTP requests and responses are basically data streams, we can use Node.js to create some positive features. For instance, processing files while they are just being uploaded, e.g. for audio/video encoding.
Monitoring dashboards. To collect real-time data about website visitors and visualizations, you can use Node.js nicely to make system dashboards. User statistics and the ability to see what they are doing instantly, isn’t it great for business?
This article is a part of Handbook:Node JS Development: All You Need to Know
Liked this chapter?
Awesome! We’ll be adding new content on this topic soon. Want to be notified?
Node JS Development: All You Need to KnowFollow handbook