Subscribe / Unsubscribe Enewsletters | Login | Register

Pencil Banner

Key Success factors for adopting Node.js

Dan Shaw, CTO & Co-Founder, NodeSource | Aug. 26, 2016
Node.js takes asynchronicity to the extreme on the server, making it the perfect choice for I/O-heavy and highly concurrent applications

This vendor-written tech primer has been edited by Network World to eliminate product promotion, but readers should note it will likely favor the submitter’s approach.

Node.js is an open source, cross-platform runtime environment for server-side and network applications. Since its inception, it’s also become widely used for front-end tooling, APIs, desktop applications, and even controlling IoT hardware like drones. Node.js applications are written in JavaScript. The growing popularity and adoption of Node.js is the result of a confluence of several factors.

First, there is an increasing need by companies of all sizes to quickly build scalable, fast, distributed web applications. Second, large enterprises are finding there is inherent risk associated with running large, complex monolithic applications due to the difficulty and cost of tuning, maintaining, patching, and debugging them — and the challenges this poses to business responsiveness. Third, software developers are looking to develop a skillset that prepares them for the new market reality of agile practices, continuous integration and delivery, cloud-scale application design and a highly mobile and demanding user base.

Node.js provides a module-driven, highly scalable approach to application design, development and deployment that enables development teams to put the most desirable elements of agile methodology into practice. This can greatly reduce risk and increase developer productivity—raising developer morale in the process.

In order to understand how these gains can be achieved, it is important to understand what makes Node.js so unique and powerful.

JavaScript on the server

At the most basic level, Node.js is a platform for running JavaScript on the server. There are some key benefits associated with this model, including a large JavaScript developer community that is already building some of the world’s most exciting web applications.

JavaScript also consistently ranks among the most popular languages. “Developer joy” is a common theme for Node.js, largely due to the approachability of JavaScript and the high level of productivity it affords. JavaScript on the server with Node.js further establishes it as the language of the web and its new uses are helping to shape the future of the language itself.

Node.js requires developers to embrace a different mindset in the form of asynchronous programming—as opposed to traditional serial, or sequential programming. By treating I/O as a special class of operation, developers must design high performance applications by default. However, the inherent asynchronous nature of Node.js comes with the additional burden of requiring them to adjust they way they think about the execution of their code.

Node.js is single-threaded by nature, and while some consider this a weakness, it should be embraced as a win for application design. Applications built with Node.js are built for predictable scalability; the idiomatic design patterns adopted by Node.js programmers confer robust scalability by nature without the overhead required by complicated synchronization mechanisms.

 

1  2  3  Next Page 

Sign up for CIO Asia eNewsletters.