nav search
Data Center Software Security Transformation DevOps Business Personal Tech Science Emergent Tech Bootnotes BOFH

Tired: Java. Desired: Node.js. Retired: The suggestion a JavaScript runtime is bonkers

Er, according to these JS framework fans

By Thomas Claburn, 26 Jul 2017

Node Summit As the Node Summit got underway in San Francisco on Wednesday, Charles Beeler, general partner at Rally Ventures, said the Node community has come a long way since 2012, when everyone was talking about Node.js and no one was using it.

Initially released in 2009, the JavaScript runtime environment now has enough users and momentum that the nonprofit Node.js Foundation feels comfortable claiming that "Node.js is emerging as a universal development framework for digital transformation with a broad diversity of applications."

Its claim is without much specificity, burdened with the meaningless jargon "digital transformation." But it's backed by a small bit of data: a survey of 1,405 Node users in more than 85 countries from November 30, 2016 through January 16, 2017, in both English and Mandarin.

There are some 8 million Node.js instances online at the moment, according to the survey, and three in four Node users say they will increase their usage over the next 12 months. Some 71 percent anticipated more usage and 2 per cent expected the opposite.

Java developers might argue that Java is already a universal development framework, but at least in the context of this particular survey, they're a dying breed.

Over the next 12 months, the poll respondents – who, don't forget, are Node.js users – said they'll increase or decrease their usage of the following programming languages and platforms:

  • Java: 28 per cent will use it more, 33 per cent will use it less
  • .NET: 23 per cent will use it more, 34 per cent will use it less
  • PHP: 14 per cent will use it more, 55 per cent will use it less
  • Ruby: 17 per cent will use it more, 44 per cent will use it less

Java remains enormously popular and is still a top job skill, but a deathwatch has been underway since 2010, if not earlier.

The rise of Android – which relies on Java – has reinvigorated Java. And enterprise popularity ensures a long half-life. At the same time, the excitement in the developer community appears to be elsewhere. The TIOBE Index suggests a slow decline, but a chronic condition rather than a terminal one.

'A breath of fresh air'

Consider a remark by Rod Vagg, chief Node officer at NodeSource, about the advantages of npm, the Node Package Manager. "Having come from Java, it's a breath of fresh air," he said.

Or consider Stanford's exploration of JavaScript as an introductory programming language instead of Java.

Then there was a remark by an IBM developer advocate: "Node.js is the biggest runtime on our cloud platform, BlueMix."

At a Java conference, you'd hear something else. Java isn't going anywhere. But apparently Node.js is.

JavaScript, upon which Node.js is based, is among the top programming languages and it has some real advantages (in addition to maddening quirks). With Node.js, there's the ability to use a single language on both the frontend and the backend and the ability to take advantage of web technology for interfaces. Then there's Electron, based on Node, for creating cross-platform desktop apps with JavaScript, HTML, and CSS.

Justin Beckwith, a product manager at Google Cloud Platform, said the ability for developers to work with the same language for client and server applications, and to use the same development tools (Chrome's dev tools, for example), makes Node.js particularly appealing.

He also said the Node.js programming patterns make it easy for developers to "fall into the pit of success." You can stand up a moderately capable web server in just a few lines of code, he said.

As Vagg described, Node developed out of creator Ryan Dahl's observation that most programming is biased toward blocking-style code, where operations happen in a linear order. Node favors non-blocking, asynchronous programming, which turns out to be a much better way to deal with data that may or may not be immediately available when requested. Blocking code stops while it waits for data; non-blocking code can deal with other tasks.

"Asynchronous programming is much more like we interact with the world," said Vagg.

Node.js is shaping up to be a useful tool for doing that. ®

The Register - Independent news and views for the tech community. Part of Situation Publishing