Node.js: Unprecedented Growth Distorts True Acceptance

On theCube at NodeSummit, RedMonk Co-Founder Stephen O’Grady said that Node.js is showing incredibly fast adoption, almost without precedent. Most frameworks and programming languages take years to reach the trough of disillusionment. Node.js has reached it faster than any other technology has and at this point may have skated into a more mature phase with more acceptance in the larger enterprise market.


Watch live video from SiliconANGLE.com on Justin.tv

We do not know for sure if Node.js has popped out of the trough and into calmer waters.
Developers try so many new technologies and do so far faster than the rest of the market. This time with Node.js, the speed of that adoption is hyper fast, distorting its true acceptance, perhaps in a way you never expect when a technology becomes such an instant success.

“The community may be harder to scale than the technology itself,” says DevOpsAngle editor Klint Finley, refererncing his interview on theCube with JSConf organizer Chris Williams and NodeUp host Danial Show. In the interview Williams and Shaw discuss the challenges of scaling up a community that is growing from a small one in which everyone knows almost everyone within the community to one where the members may not know each other or what all the other community members are working on. They also discuss many of the challenges of Node.js’s fast growth and the pitfalls of labeling it “enterprise ready” too soon:


Watch live video from SiliconANGLE.com on Justin.tv

Still, it’s a good problem to have. Doubts about a technology’s real worth never go away, no matter how established they become. It’s a condition that few technologies ever get the right to enjoy.

In reality, the distortion may in fact mean that Node.js is getting underestimated in terms of its potential. It is not that it is getting overhyped but instead underestimated by a market increasingly cynical about any new technology that quickly gets attention. The distortion of such tremendous interest may actually suppress expectations for Node.js when it really is growing at a rate that will put it on a foundation equal to other great technology movements

Early, anecdotal pointers to why this may be true:

Node.js is Different. Node.js does not compete with Ruby on Rails or Python. It’s an event-based, asyncrhonous technology well-suited to real-time communications. The node can be a data center, a browser or a smartphone.

From “The Secret of Node’s Success,” on O’Reilly Radar:

Node has changed our mental image of what a server can be. It doesn’t have to be running on a high-performance blade in an air-conditioned co-lo serving millions of requests and gigabytes of data. It can be in your pocket synchronizing your contacts whenever it finds Wi-Fi. It can be caching a web application for faster, local access. It can be a peer-to-peer web server. And it can be a number of things we haven’t even thought of yet.

No Coordinated Skills Required. You can learn Node.js without knowing how to configure an Apache server. That’s enough to give it an edge and long lasting staying power.

An Incredible Community. This is a tight community. On GitHub, Node.js has 12,762 watchers compared to Ruby with 12,202.  Sheehan said on theCube that the Node.js community has more contributors than the Python one for its volunteer support.

The Redmond Giant. Microsoft ponied up as a platinum sponsor for Node Summit. Node.js does not really compete with Microsoft technologies. It’s a safe bet to say that the company will invest in its future as it seeks to widen its developer community. That’s a movement which will take some time to develop. It’s apparent now, but what will the community look like in five years?

The Wal-Mart Story. The world’s largest retailer uses Node.js for some of its mobile apps. Venture Beat’s Jolie O’Dell writes that Wal-Mart pushed all its Javascript processing to the server, making for a rich and dynamic experience for its customers, many who have low-powered phones. Further, the end-to-end Javascript capabilities makes it possible for Wal-Mart to customize content according to the device and browser capabilities. This is the kind of high profile use case that will give the framework more acceptance.

Joyent. Linux enjoys more acceptance than ever before, especially as more companies explore the benefits of a distributed infrastructure. But don’t count out Solaris derivatives like SmartOS. It’s the engine that fuels the Joyent cloud. Joyent’s DTrace tools provide deep and detailed views of a customer’s deployments. It’s a data visualization engine that provides a heat map of a customer’s deployments. I am told that you just don’t see threes kinds of tools in a Linux environment. Joyent sees this as the Achilles heel of Amazon Web Services. The tool must be pretty good. Telefonica is the third largest telecommunications company in the world. It will deploy the Joyent cloud across its markets in new data centers or existing ones it has online. Joyent will manage the infrastructure and the billing. Node.js developers will get the ability to deploy apps wherever Telefonica has installed the Joyent cloud.

Skepticism Is A Good Thing

When communities grow as fast as GitHub, the validity of the technology gets questioned most.

A Few Reasons Why it is Prudent to Hold Judgement

Asynchronous To a Fault. Asynchronous programming helps solve the concurrency problem but it also can create a snarl of callbacks.  On Quora, Zef Hemel, the designer of the Mobl language, writes:

People told me: “asynchronous programming is the way to the future, it’s the rightway to achieve semi-concurrency”. And to be honest, I believed them. I got used to using callbacks, three-level deep anonymous function callbacks. I got used to it. I was happy.

Until I used Python for a server-side project and remembered how much simpler the synchronous programming style is. How cleaner your code looks. I suppose I had the Stockhold syndrom for a while there.

Scaling is Never Easy. Alex Payne co-wrote Programming Scala for O’Reilly. He is the co-founder and CTO of Simple. He wrote a blog post in July  2010, questioning a pure asynchronous approach and why for Simple (then called BankSimple) “a hybrid concurrency model may not be as straightforward and pure as Node’s approach, but it’s going to be more adaptable.” In an email exchange, Payne said they ended up using languages that allow for multiple concurrency approaches: Scala, Java and Ruby. They do a lot of JavaScript, but hardly any Node.

Security. Node.js still has its fair share of bugs and security issues. Williams pointed out in the interview above that developers are still finding issues in V8, the Google developed JavaScript engine that powers Node.js. And since it is Javascript, there is the concern about server side injections. Here’s a good post about the good, the bad and the ugly about Node.js.

Data Integrity. Wikibon CTO David Floyer says data integrity is a question mark. But this may be largely due to the types of applications getting built. It doesn’t necessarily matter if a little data is lost with most of the apps built on Node.js. This is a conversation just getting started but should get more attention as Noder.js gets more adopted in the enterprise.

Still a Youngster. We need more time to really see how Node.js plays out. We need to have a better idea where the problems lay lie. Libraries are still immature.

Overall

The number of dynamic technologies of the past several years point to a bright future for Node.js. Ruby on Rails growth is testament to the demand for dynamic technologies.

Node.js is a bit different as it can be deployed from the front end all the way to the back end. That it represents such a spectrum means that it will sure to continue attracting a diverse constituency. The tests will come as the community continues to grow in scope and market perceptions distort Node.js and its true acceptance.

About Alex Williams

Alex Williams is an editor for SiliconAngle and lives a charmed life in Portland, Or.