A few months ago we surveyed our readers to gain insights on what Node.jsNode.js is an asynchronous event-driven JavaScript runtime and is the most effective when building scalable network applications. Node.js is free of locks, so there's no chance to dead-lock any process. is used for & why developers still love it. Our secondary goal was to figure out what are the most severe problems they face with Node, and what are the most underexplained topics around it – so we could continue writing tutorials that really help moving forward with JavaScript, MicroservicesMicroservices are not a tool, rather a way of thinking when building software applications. Let's begin the explanation with the opposite: if you develop a single, self-contained application and keep improving it as a whole, it's usually called a monolith. Over time, it's more and more difficult to maintain and update it without breaking anything, so the development cycle may... & KubernetesKubernetes (often abbreviated as K8s) offers a framework to run distributed systems efficiently. It's a platform that helps managing containerized workloads and services, and even takes care of scaling. Google open-sourced it in 2014. (just like we did it in 2017).
We were also interested in the infrastructural aspect of running Node.js apps in production, so we asked our readers to share where they deploy their services, what are their preferred front-end technologies, what kind of databases they use and which flavor of JavaScript they prefer.
See all survey questions:
- What do you like most about developing with Node.js?
- What are you using Node.js for?
- What difficulties do you face with your production environment?
- What’s the hardest thing for you to get right with Node.js at the moment?
- What Node.js topics are criminally underexplained in your opinion?
- Where do you deploy your Node.js applications?
- Which front-end technology do you plan to use in 2018?
- Which kind of databases do you plan to use in 2018?
- Which flavor of JavaScript do you use?
As a result, 539 devs who use Node in production shared their opinion. Here come the results of our mini-survey:
Fast development, great performance & the easiness of Node.js makes it a favorite.
According to our survey, Node.js is a great option for developers who like to get their apps into production as fast as possible. It’s also loved because it’s easy to learn and has an amazing ecosystem with ready-made modules we can use.
Why use Node.js?
To understand why developers love & use Node.js, let me just show you a sample of the responses we got:
- Node.js is very performant while allowing me to be very productive.
- Light weight development in the enterprise, plus the 400k npmnpm is a software registry that serves over 1.3 million packages. npm is used by open source developers from all around the world to share and borrow code, as well as many businesses. There are three components to npm: the website the Command Line Interface (CLI) the registry Use the website to discover and download packages, create user profiles, and... packages.
- Front-end, back-end, and tester have the same language to work with.
- I can develop and be productive all across the stack without having to juggle different syntax. It’s all JavaScript, and it’s fast to prototype.
- Same language on client and server; js is conducive to functional programming; Typescript plays well with node; non-blocking io.
- Speed, familiarity, tooling. Lovely, like a breath of fresh air compared to php.
- It’s so easy to write the code in Node.js. You can actually read it like any human language.
Node.js is Used Mainly for Developing API’s, Backends/Servers & WebApps.
When we asked developers about what they actually build with Node, the answers gave a pretty clear picture.
The answers we received were very diverse, although most of the respondents wrote that they develop REST API’s or backend services with Node.js. Besides that, Webapps, Microservices & Websites were also mentioned a lot.
Other Node.js use cases, just to mention a few:
- Creating CLI and build tools,
- Writing mobile apps & backends for them,
- Building management systems,
- Scripting & Automation,
- Rendering React Apps,
- Internet of Things,
- Remote Systems Monitoring,
- Writing Middlewares,
- Authentication,
- Creating Workers,
and so on..
Most Node.js Developers Face Performance & Security Problems in Production
We ask developers about their difficulties in a production environment. This time we offered them several categories, which they could pick from (multiple selections were allowed.)
It looks like that Performance Monitoring, Security, and Improving Performance are key issues for most of the respondents. Deployment, Scaling & Maintenance were often selected too. It looks like Downtimes & Networking are not that challenging.
The hardest thing to get right with Node.js are Asynchronous Programming & Security
We also asked the respondents of the survey to use their own words to describe what is the hardest thing to get right with Node.js at the moment?
The answers were pretty hard to synthesise into coherent subgroups, but I tried my best in categorizing them:
- AsyncAsynchrony, in software programming, refers to events that occur outside of the primary program flow and methods for dealing with them. External events such as signals or activities prompted by a program that occur at the same time as program execution without causing the program to block and wait for results are examples of this category. Asynchronous input/output is an... problems include things like: Asynchronous Programming & Behaviour, Async/Await, Async Patterns, Async Hooks.
- Clean Coding mainly includes: Code Quality, Code Maintenance / Organization / Management
- Performance means performance monitoring and improving.
- Module related issues are usually like: finding the right modules, keeping dependencies up-to-date, package security & the lack of maintained packages that are not buggy.
- Testing includes unit testing & end-to-end testing.
- Monitoring problems include performance monitoring, tracing & logging.
- Structuring mainly contains answers for planning & structuring complex, scalable architectures.
- Processes include multithreading, parallel-processing, multiprocessing & handling child processes.
- Promises are often mentioned as promise patterns, promise driven development, proper use of promises.
- Dependency problems are mainly about upgrading them, reducing their numbers & managing them.
Although these answers are hard to categorize, I think they still provide useful insights into the problems & minds of Node.js developers.
Security is the most underexplained topic for Node.js Developers
This leads to our latest “freeform” questions – where we asked developers to point out the topics that are criminally underexplained.
I couldn’t include more in the chart, but we also got answers about databases, microservices, logging, authentication, callbacks & maintenance.
AWS won the Node.js Market (too)
We also asked the respondents of the survey about where they deploy their services. The results were not surprising, the hegemony of AWS is clear:
React is the Leading Front-End Tech
It looks like that React leads the front-end framework war – when it comes to Node.js developers who need to pick one:
In case you’d like to learn more about it, read 8 Tips to Build Awesome React.js Apps in 2018, or check out our Modern Front-End with React Training. Of course Angular came up as the second choice – we got that covered as well.
MongoDB is the go-to DB choice of Node.js developers & ES Next is the most popular flavor
When it comes to databases, MongoDB is the favorite choice of Node developers, but it looks like that the second place is still undecided between Redis, PostgreSQL & MySQL.
Also..
That’s all folks
I hope that you enjoyed the data presented above. Keep in mind that I’m not a well-trained statistician, and the results are not representative – but based on our experience of consulting & teaching Node, they seemed to be relevant & insightful.
In case you’re interested in our previous posts about developer research, check out the following articles:
- This is what Node.js is used for in 2017 – Survey Results
- Survey: Node.js Developers Struggle with Debugging & Downtimes
- How Developers use Node.js – Survey Results 2016
If you liked the article, please share it – thanks!
F