Ideas
Javascript (and Node.js) Continues To Eat The World
Author:Dale Knauss
Date:August 14th, 2016

After spending two days at NodeSummit 2016 a few weeks ago, there’s no doubt in my mind that Javascript, and Node in particular, is eating the world.

Case Studies From The Conference

NodeSummit offered several case studies that were demonstrative of the power that Node provides to some of the world’s largest enterprises and organizations.

In three months from today, 98% of all Walmart.com traffic will be serviced via Node APIs and displayed with React.js according to Alex Grigoryan, Director of Software Engineering at WalMart Labs. Three months after that, SamsClub.com, Walmart’s second biggest property, will be 100% javascript based. Even their iOS and Android experiences will eventually be done in React Native, a javascript technology that’s made to replace native Java/Objective C coding.

With this switch, Walmart has managed to significantly reduce their time to market while enabling their entire development team to understand, and develop for, their entire stack. While no specifics were provided on the time savings, it was clear that this speed was one of the primary drivers for Walmart’s increasing investment in Node. Where before they needed dedicated front end, back end, mobile, and devops developers, they now are able to have each member of their team work on any of those positions.

More excitingly, for those geeks among us at least, was a talk by Collin Estes discussing NASA’s move to a Node enterprise architecture. Yes — that’s the same NASA who’s responsible for sending people to the moon and creating Tang. NASA has wholeheartedly embraced Node for it’s flexibility in creating microservices that can scale to support the future of space travel. While Node is not used in mission-critical systems (yet), it is being used “to build the present and future systems supporting spaceship operations and development.”

Javascript’s Vertical Integration Strategy

Javascript started as a simple, and admittedly poorly designed, scripting language made for doing cute little things on the Netscape browser in 1995. Over time, it spread out to be the dominant way for interacting with each of the various web browsers but it still clung to its niche of making things happen on the browser. Then, in 2009, Node.js came along and offered a way to use Javascript on the server without ever touching a browser. With that innovation, the floodgates opened.

Today, in addition to the amazing things that are happening on the web and server side, javascript has expended to do essentially everything including:

  • Windows and OS X Desktop Applications — Using Electron companies including Slack, Microsoft (Visual Studio Code), and WordPress.com have used this Node toolset to create native applications.
  • iPhone and Android Applications — React Native now provides native-quality experiences for significant portions of Facebook’s mobile applications in addition to those of companies like CBS Sports, Vogue, and apparently Walmart in the near future.
  • Internet Of Things (iOT) — Javascript is now finding it’s way into production quality iOT devices, partially thanks to a library called Johnny-Five. At the NodeSummit, developers from FitBit, Qualcomm, and McLaren (think Formula One racing) and others discussed their companies use of Javascript.
  • ROBOTS! — Using single board computers like the Raspberry Pi, Nodebots is enabling anyone to create fully functioning robots using javascript.


Why Node Matters

So why does Javascript matter? Why are Walmart, NASA, Intel, Capital One, and countless other companies making huge bets on the future of Node.js? I think it’s a combination of things.

  • It empowers developers — All of your front end development is already happening with Javascript. By moving to using Node as well, there can be massive developer productivity benefits. All of a sudden, libraries can be reused, tooling can be more standardized, and all of your developers can understand and work on what’s happening anywhere on the stack.
  • It’s perfect for microservices — Microservices have taken the software development world by storm for their ability to scale only those parts of an application that are needed, allow large teams to work in parallel, and eliminate unwieldy monolithic applications. While other languages are capable of creating microservices, few offer the same combination of development speed, low memory usage, and scalability of Node. Additionally, the Node community has wholeheartedly embraced microservices — in the process creating some of the industry’s best tooling for creating, deploying, and maintaining this powerful pattern.
  • It’s lightweight and scalable — Node empowers rapid development without sacrificing performance or security. It’s fairly easy to learn, doesn’t require a lot of the boilerplate associated with some of the more traditional “Enterprise” languages, and it’s excellent open source culture means that there are a huge number of powerful libraries to speed up development
  • It’s constantly improving — Node is evolving and improving at a rapid speed. With the ES6 spec for Javascript (the best thing to happen for Javascript developers in a long time) as well as the consistently fantastic releases and standards by the Node Foundation, the technology will only continue to get better with time.
  • Performance — Node’s major innovation, its single threaded nature and non-blocking event-driven I/O, not only makes it easier for developers to work on and reason about, but it also results in some pretty impressive performance gains. In one famous example from PayPal, moving their mobile servers from Rails to Node resulted in going from 30 servers to just 3 and performance that was up to 20x faster. Other major companies, including PayPal and Netflix have reported significant, though admittedly not nearly as extreme, performance benefits.

 

In its several years in existence, Node has made a significant impact on a number of small and large companies — and it’s only getting started. With ever increasing investment, Samsung just bought major Node backer/contributor Joyent for 1.2 Billion, I expect Node to continue to mature and expand its enterprise capabilities.

However, Node will need strong leaders to guide it in the maturation process. This includes continuing to improve its package manager, NPM, and also solve some persistent problems such as the prevalent issues with “callback hell” and its collaboration with Javascript’s standards committee (TC39) will play a big part in the maturation process. Additionally, efforts such as NodeSchool which aim to educate Node developers will need continued support.

If your organization or side project is on the fence about Node, now is the time to get started. Head over to nodejs.org, download Node, and start exploring. Of course, should you need help with things like establishing best practices, handling security, building for scale, setting up a cloud infrastructure, and creating an awesome application, you can always reach out to Presence for help.