Node.js is one of the most popular development tools used today. Many of the biggest companies in the world (PayPal, Uber, LinkedIn, Walmart) use Node.js. In addition, developers list it as one of their most used technologies- according to Stack Overflow’s 2020 Developer Survey, 51.4% of the 65,000 developers surveyed use Node.js. Yet, there are some projects better suited for Node.js than others.
When You Should Use Node.js
- Real-time Applications: Node.js can handle multiple client requests, share/reuse packages of library code, and sync data between the client and server extremely quickly. This makes Node.js particularly useful for “real time” apps such as messaging, video conferencing, and online-gaming.
- Collaboration Tools: Due to its event-driven, non-blocking model, Node.js can easily process real-time flows. In addition, Node.js allows immediate updates. This makes it well suited for shared drawing/editing apps, which is why popular websites such as Google Docs, Trello, and Dropbox Paper utilize Node.js.
- Streaming: Node.js includes built-in modules that support data streaming and permit both readable and writable data streams. This makes Node.js perfectly suited for “streaming” (sending data in smaller packages rather than one batch). One of the world’s most popular streaming companies, Netflix, uses Node.js to stream content to its users.
- Scalable Apps: For many tech companies, “super” scalability is critical. Because Node.js is able to resist high volume, companies with ever growing networks and users choose Node.js. For example, eBay uses Node.js because its number of users grows constantly and because it often has high-demand peaks at certain times of day/year.
When You Should Not Use Node.js
- Data Entry/Modification: Companies often want users on their apps and/or website to create an account and then later update their personal data, billing information, etc. Similarly, oftentimes managers want to create inventory records, and modify them later on. This is not what Node.js should be used for. When creating a simple CRUD or HTML application, other frameworks are much better suited.
- AI and Machine Learning: AI and Machine Learning are both very much in demand today. Yet, Node.js is not the best choice for this type of development. Though it does have some libraries and tools for incorporating AI-based elements, it does not have the variety of Python and other programming languages. Ultimately, using Node.js for AI/ML is possible, but not preferable.
- Server-Side Apps for Relational Databases: Ruby on Rails includes features such as matured data mappers, active record data access layer implementations, out-of-the-box data access setup, and schema migrations support tools, which make it the perfect tool for server-side apps of relational databases. While Node.js has many advantages, others like Ruby on Rails are more equipped for the task. So, if you are looking to work with Microsoft SQL or Oracle Database, use something else.
- Heavy Computational Applications: Node.js is not well suited for computing and number crunching tasks. This is because Node.js only executes one instruction at a time, and blocks others. Therefore, if any operation, like a long computation, takes an especially long time, it blocks the rest of the program from running. If you would like to search for prime numbers or do linear algebra, do not use Node.js.
Do you want to discuss whether Node.js makes sense for your project? Let’s chat: https://solwey.com/book/.