Ferenc Hámori co-CEO of RisingStack

A few months ago we surveyed our readers to gain insights on what Node.js 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, Microservices & Kubernetes (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.

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 npm 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:

Async problems include things like : Asynchronous Programming & Behaviour, Async/Await, Async Patterns, Async Hooks.

: Asynchronous Programming & Behaviour, Async/Await, Async Patterns, Async Hooks. Clean Coding mainly includes: Code Quality, Code Maintenance / Organization / Management

Code Quality, Code Maintenance / Organization / Management Performance means performance monitoring and improving.

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.

: 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.

includes unit testing & end-to-end testing. Monitoring problems include performance monitoring, tracing & logging.

problems include performance monitoring, tracing & logging. Structuring mainly contains answers for planning & structuring complex, scalable architectures.

mainly contains answers for planning & structuring complex, scalable architectures. Processes include multithreading, parallel-processing, multiprocessing & handling child processes.

include multithreading, parallel-processing, multiprocessing & handling child processes. Promises are often mentioned as promise patterns, promise driven development, proper use of 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:

If you liked the article, please share it - thanks!

F