Node.js is taking over the Enterprise – whether you like it or not
TL;DR: The question is no longer if Node is enterprise ready. The question now is the following: what major digital enterprises will end up being the last hold-outs?
There’s now no question whatsoever that Node is far more than a flash in the pan. The question nowadays is not whether or not Node will break out of its so-called “hipster hacker” bubble, but rather how much of the digital world it will conquer.
In spite of all of the early FUD directed at the Node community and arguments that you shouldn’t use Node for anything much less for enterprise-ready web development, a pretty sizable chunk of the corporate world has gotten on the train.
It turns out that the same things that made hackers fall in love with Node are more or less the same reasons why enterprises are turning to it. In a world in which we want information pipelined to us in real time and in which technological advancements like open APIs and distributed computing have made that possible in once-unprecedented ways, then it’s no surprise whatsoever that the contemporary digital marketplace would begin looking for tools to not just put their toes in the water but to dive in unabashedly.
Examples of Node in the enterprise abound already:
- Last year, eBay released ql.io, an event-driven aggregation tool for API consumption.
- I’ve written previously about Node at LinkedIn, but it’s worth a mention. LinkedIn has said publicly that they achieved massive performance gains with Node, which is impressive for a company that is one of the top 100 most visited on the web.
- Voxer is using Node and Riak to build its walkie talkie-style mobile app (and have open sourced their in-house Riak client). They shot to the top of the Apple App Store last winter and drew heavy praise from Soulja Boy and Kevin Durant.
- Yahoo has used Node to develop their Mojito platform and a handful of others.
- WalMart Labs has been using lots of Node in mobile development.
- I’ve also seen all kinds of promising game development done using tools like Node, socket.io, and Redis. I’m excited to see how far this goes and whether or not large gaming companies like Zynga will come to favor Node over ActionScript, Erlang, and other languages and frameworks.
- AppFog has used Node extensively in our console and in other crucial parts of our application architecture after various flirtations with EventMachine turned out disastrously for us in testing. We’re a new company, but we’re making an investment in Node and we are not alone.
Now, Node is not the only tool out there that does things like non-blocking I/O, of course. Python’s Tornado web server is non-blocking, as is Ruby’s EventMachine (mentioned above), as is the polyglot Vert.x server. There are a handful of others in highly variable states of maturity floating around out there. But what makes Node special is the Node community, which is not only incredibly vibrant but also, more important, the only developer community that was built from day one around asynchronous, event-driven application logic as a core principle.
In this context, it’s important to remember that Node has surprisingly deep pockets. With official corporate backing from Joyent, who has been a supporter not just on the financial end but also on the evangelism end, there is little to no risk that Node will stop having a core team that is actually paid good money to work on Node. While the vast bulk of the Node community is dispersed and autonomous and corporate backing from a company like Joyent isn’t all that important to hackers, it can often be the difference between convincing IT higher-ups and managerial types to bank on a technology.
So what does that mean for the future of Node? Well, first of all, I think it will mean that the demographics of the Node community will change. Thus far, your typical Node developer is still young, a resident of a small handful of urban areas in the U.S., and not very “corporate.”
That profile is changing already. Older hands are getting involved as Node loses its reputation as being intrinsically immature and unstable. A lot of former .NET developers, some of them as enterprise-y as anyone, seem to have developed a real affinity for it. And we seem to already be reaching a point where Node becomes as widely accepted and no-longer-scary as Ruby on Rails. Once that happens, those always on the lookout for the newest and baddest will have to start looking beyond the Node community (I, for one, am pushing for Scala).
Second, I think there’s a possibility that the biggest qualitative leaps in Node development might someday come from the enterprise rather than from the vast ecosystem of autonomous developers. This is an uncomfortable thought for plenty of Node hackers, but if we see more of what we’ve seen so far from Yahoo, Voxer, and others is any indication, this could well turn out to be the case. There will always be thousands of developers contributing modules to NPM and providing incremental improvements and additions to Node, but big leaps often require larger projects demanding whole teams of developers. Big shake-ups in the database space, for example, have often followed on the heels of working papers publicized by Google (like this one on its Spanner architecture, which could also have a huge impact outside Google). The Node community could come to function in a similar fashion.
In short: Node is already in the enterprise, and it’s set to expand there. But that doesn’t mean that you have to delete your Node-related GitHub repos and tear down your Ryan Dahl poster. It’s simply the run of things in tech. There will still be plenty of Node hacking to be done for the foreseeable future. But a lot of the most interesting stuff might be at a Walmart or an Oracle.