Why Node.js is the past, present and the future of web development

Vladimir Fedak
4 min readAug 9, 2018

Need a web app? Use Node.js. Need a mobile app? Node.js. Front-end development? Node.js. Back-end development? Yeah, you guessed it… Node.js!

Over the course of the 20th century, multiple programming languages were invented, rose to glory and fell to oblivion. Who uses Fortran, Pascal or Assembly nowadays? This is due to the fact each machine language was invented to fulfill a certain PURPOSE, and while it might have excelled in it, it surely had certain limitations. These limitations led to the need to invent a new language, and the developer’s community had to constantly re-train and master the new tools.

To say even more, certain languages do their job so well (like C++, Java or Python) that the developers had to specialize in them in order to be efficient and competitive. This specialization has obviously led to the need of employing rather large teams to be able to cover all the demands of the software delivery lifecycle. Back-end developers have different skills and use different tools to front-end developers, and even full-stack developers cannot work in 5–6 languages, they specialize in one pair. This is what the situation looked for decades, till 2009.

You know what happened in 2009? Ryan Dahl tried to upload an image to Flickr and while watching the upload progress bar he understood the browser did not know if the file was uploaded already and had to query the web server for that. Ryan decided there must be a better way. Thus, the concept of a cross-platform Java runtime environment for server-side Javascript rendering was born.

9 years later it’s hard to imagine browsing the web without Node.js. It caters to the needs of web developers, mobile app developers, desktop and even back-end developers! Here is how.

Why Node.js is great for front-end web development

React, Angular and Vue power up Facebook, Google and Free-and-open-source-software community. These frameworks gave the front-end web developers the immense power to create highly-responsive and interactive user interfaces with server-side Javascript execution. We are now living in the age of the UI, and Node.js is what made it possible. Front-end web developers now have much more to offer to their customers — web apps of any complexity, even fully-fledged software applications can be built using the power of React, Angular, Vue — and Node.js

Why Node.js is great for mobile app development

Node.js is a cross-platform framework underpinning a huge ecosystem of tools, React Native being one of the most prominent examples. Where you previously had to hire a team of iOS developers and a separate team of Android developers — you can now use a single team of developers that write the common code in React Native and use platform-specific libraries to execute it runtime on iOS and Android. As up to 90% of code can be shared and reused between the platforms this way, the decrement in costs and development time is huge.

Why Node.js is great for back-end web development

Node Package Manager or NPM allowed the Node ecosystem to flourish, as it enables building highly-specialized environments for literally any needs. However, one particular package might inspire a spark of understanding of our point — ExpressJS, the one simple and robust tool enabling building flexible and efficient mobile and web APIs with powerful capabilities. One such capability is server-side rendering.

We cannot emphasize this enough, as before the introduction of Node and Express, JS was merely a language to be used in-browser to execute on-page scripts. However, by harnessing the power of Express the web server can assemble user interfaces of any complexity before the user’s browser even makes a request. Did you notice how the web apps we use load nearly momentarily? Do you remember what it looked like before, when the pages were loading for several minutes sometimes? This is why Node.js is a great tool for back-end web development.

Final thoughts on why Node.js is great for web development

Please note, we do not say Node.js as a framework and JavaScript as a language are the perfect solutions for any case. Jack-of-all-trades will rarely be a master in any. Going with Java for Android app development and with Objective-C/Swift for developing iOS apps is the wisest choice. Python, R, and Ruby are better as tools for dealing with Big Data analytics and heavy-workload back-end applications. Nobody in their sane mind will state Node can even try to displace Java as the king of enterprise-grade web systems (or C#/ .NET for that sake in the Windows world).

What we try to point out is Node.js can be a common ground for web, mobile and back-end development, enabling the same team of software engineers to deliver the full cycle of software development services for lightweight, user-oriented apps with complex UI/UX. This makes a versatile tool, a worthy addition to any software development team’s toolkit.

Originally published at itsvit.com on August 9, 2018.

--

--