2020 Node.js Developer Survey Report

The survey was led by companies such as Alibaba and Tencent. The survey was conducted from February to April 2020 in Chinese. As of April 10th, a total of 1113 respondents participated in the survey. This report will analyze the current status of the Nodejs development ecosystem from the multiple dimensions of Nodejs developers, application scenarios, development scenarios and other dimensions.

Respondents

Character source

In this questionnaire, the main age distribution of the Node.js developers who filled out the questionnaire is as follows:

Their main distribution is:

From a city perspective, the distribution of people is mainly:

Career resume

  • Typical interviewees come from two companies, small companies with about 100 employees and large companies with more than 5k employees.
  • They are usually front-end or full-stack engineers in a team of about 7 people.

Work content

Application scenario

  • The typical application scenario of Node.js is website development.
  • More people in large companies will use Node.js for tool & automation development.
  • Small and medium-sized companies will be more willing to try Node.js in mobile applications.
  • Many people (35.01%) learn Node.js out of hobby, which is more obvious in small companies.

Development scenario

  • Overall, 87.50% use Node.js to develop server APIs, and 51.19% develop CLI & tools.
  • With the increase in service life, the ratio of using Node.js as a server-side API decreased slightly (5%) and the usage scenario of BFF increased slightly (4%).
  • The younger users are more willing to use Node.js in SSR scenarios.

multi-language

  • The most suitable for Node.js development is the front-end development language (JavaScript / HTML / CSS).
  • In addition to the front end, the most common languages ​​that coexist with Node.js overall are Java (25.27%), Python (22.24%), and Go (17.73%).

Development Process

Code translation

  • As the service life of Node.js increases, the rate of non-translation is greatly reduced (45% to 25%).
  • TypeScript is the most commonly used translation language.

Code inspection

  • Overall, 90% of Node.js developers have used ESLint.
  • As the size of the team increases, there is a slight increase in the use of TSLint.

Configuration method

  • File configuration is the most popular configuration method.
  • Although the use probability of the configuration center is not high, the larger the company size, the higher the use probability of the configuration center.

editor

  • VS Code is the best development tool for Node.js developers

Process management

  • The larger the company, the higher the proportion of people using Docker.
  • Medium-sized companies use a higher percentage of PM2.

operating system

Technology Stack

A typical Node.js Web application:

  • Use the Express / Koa framework
  • Use Mysql / MongoDB + Redis data
  • Also configured Nginx as a reverse proxy

Web framework

  • Although there are more tutorials on Koa.js, Express.js is still the most common framework.
  • In addition to Koa / Express, the more popular web frameworks are Egg.js (38%), Nest.js (15%), Next.js (7%) and Midway.js (6%).

database

  • In 2020, if you want to learn three databases, then learn MySQL (79%), MongoDB (60%) and Redis (49%).

Reverse proxy

  • Noders' concept of reverse proxy is approximately equal to Nginx.
  • Basically, the reverse proxy will use Nginx (the percentage will exceed 100% due to multiple selection).
  • Larger companies tend to use reverse proxies.

RPC

  • HTTP is the most common RPC method, and the most commonly used is the message queue.
  • Medium-sized companies use message queues the most.
  • Large companies use the self-developed RPC protocol at the highest rate.

message queue

Commonly used message queue (multiple choice) Only 18% of the students fill out the message queue (questionnaire channel is not included)

Development ecology

Node version

  • In 2020, developers generally use 12.x or later 13.x.
  • In addition to NPM, the most popular management tools are mainly yarn and cnpm.
  • Less than 6% of developers are using a non-LTS version of Node.js.

Dependency management

  • NPM has a huge influence, and less than 6% of students can get rid of NPM and only use other dependency management tools.
  • In addition to NPM, the most popular management tools are mainly yarn and cnpm.
  • As development experience increases, developers will try to find more dependency management tools than NPM.

NPM mirroring

  • More than 57% of the students used mirror acceleration, but this did not have a decisive impact on the download speed of NPM.
  • Through the ratio analysis, we can find that in addition to the acceleration of the image, the faster the download speed, the higher the proportion of companies deploying private NPM images.

Learning promotion

Learning path

  • Old drivers learn Node.js more from open source code (Github & NPM).
  • In contrast, new students will learn more through channels such as learning videos and blogs & periodicals.

Use confusion

  • The top three puzzles used by Node developers are performance optimization (58%), memory leak (42.4%), and Debug (24.89%).
  • The first three confusions faced by newcomers are asynchronous programming, event-driven and debug.
  • As the development experience increases, the proportion of memory leaks also gradually rises.

Resource requirements

  • Documentation is the most anticipated resource.
  • New students have the highest voice for video tutorials and free online courses.
  • As development experience increases, development pays more attention to documents, conference events, and offline salons.

Future keywords

  • Serverless and multithreading are the new keywords that Noders are most concerned about in 2020.
  • The higher the industry experience, the more concerned about WebAssembly (WASI) and N-API.
  • The younger classmates are more concerned about Deno.

Ecological expectations

  • The most demanding demand among Node.js developers is better performance and development efficiency.
  • In addition, developers less than 1 year are more concerned about the cost of learning, and the longer the period, the more concerned about maintenance costs.

At last

The same data can lead to different opinions in the eyes of different people. The interpretation in this report is for reference only. At the same time, community students are welcome to interpret and analyze this report.

If you find any omissions or have your own ideas / tucao, you can submit issue  feedback on GitHub  .

Author: Sen ice

Original link: https://nodersurvey.github.io/reporters/?spm=a2c6h.12873639.0.0.82ba7e118iai7N

Guess you like

Origin www.oschina.net/news/114955/nodersurvey-2020