This blog is split into the following three sections:
- Node.js is at the top of used miscellaneous frameworks, libraries and tools.
Another survey commissioned to an independent market research firm by Node.js4 concludes that Node.js has
- increased developer productivity by 68%.
- reduced development costs by 56%.
- increased application performance by 48% and uptime by 24%.
- We want to develop as fast as possible:
- That reduces business' time to market, which enables revenue earlier. But even more important it includes and binds customers earlier in today's highly competitive software market.
- As a developer this makes me feel productive and good.
- We want to get customer feedback as early and as often as possible:
- For the business it reduces chances of developing something, that users are not going to need or like.
- As a developer early customer feedback improves my software design. This might sound surprising at first. But it forces me to develop and build smaller parts, so I can present them to the customer. Smaller software parts are easier to maintain and to enhance. It also reduces the chance of unexpected new requirements short before deadlines, which don't fit into current software design, but have to be implemented quickly.
- We want to be confident in the stability of our built software:
- As a business I don't want to alienate customers.
- As a developer I want to develop new features and not spend all my time with debugging bugs.
NPM has the most amount of packages.5 Each package I don't have to develop myself obviously increases development speed. It also reduces chances for bugs. Many of those packages are used and in consequence tested by a huge number of developers.
Data based on modulecounts.com
Below is a simplified example of a webpage developed in React and a Node.js server. The webpage and the server have a bug each, which are already caught by two failing tests. I can fix the code and see immediately afterwards that the tests pass. The software also gets built immediately, so that I can see the change without delay. Programming frontend and backend with the same language on top of blazing fast feedback loops increases my productivity as developer a lot.
- State of the Developer Nation Q3 2020 survey
- https://octoverse.github.com/ (accessed January 2021)
- https://nodejs.org/en/user-survey-report/ (accessed January 2021)
- http://www.modulecounts.com/ (accessed December 2020)
- Talk "the deep synergy between testability and good design" by Michael Feathers, https://www.youtube.com/watch?v=4cVZvoFGJTU