JavaScript enters the server room with Node.js

Here's what to expect from the hot new server-side framework that promises to deliver highly scalable apps on the cheap

1 2 3 Page 2
Page 2 of 3

In fact, this potential community of developers, as well as the community already growing around Node.js, was a key factor in HP/Palm's decision to utilize Node.js in its webOS 2.0 platform. Dion Almaer, director of developer relations at Palm, explained in an email:

Node was an obvious choice for us. We had started to write a JavaScript service framework ourselves, but then Node came out with a great product and a great community. Rather than come out with our own system, we wanted to align behind something that was out there. We are webOS after all, and we're always looking to align with the Web as a whole. We only innovate when there aren't standards for us to work with (de facto or otherwise). The node team was also fantastic to work with, and really helped us as we transitioned it to a mobile form factor.

Reality check on scalability
Any organization looking to leverage this pool of developers for server-side work via Node.js may, however, want to keep their scalability aspirations in check. Alex Payne, a developer at BankSimple, explains the technical challenges between, as he calls it, scaling in the small versus scaling in the large":

The power of today's hardware is such that, for example, you can build a web application that supports thousands of users using one of the slowest available programming languages, brutally inefficient datastore access and storage patterns, zero caching, no sensible distribution of work, no attention to locality, etc. etc. Basically, you can apply every available anti-pattern and still come out the other end with a workable system, simply because the hardware can move faster than your bad decision-making.

To further scale an application similar to what he describes above, Payne suggests merely selecting a technology with "slightly better" performance characteristics than what you are currently using. But for those organizations seeking significant scalability gains, as Payne explains, no single magic bullet technology will do the trick:

When you're operating at scale, pushing the needle means a complex, coordinated dance of well-applied technologies, development techniques, statistical analyses, intra-organizational communication, judicious engineering management, speedy and reliable operationalization of hardware and software, vigilant monitoring, and so forth. Scaling is hard. So hard, in fact, that the ability to scale is a deep competitive advantage of the sort that you can't simply go out and download, copy, purchase, or steal.

As such, Payne sees Node.js as a very attractive technology choice for developers dealing with "scaling in the small" scenarios. Other technologies such as Java or Scala, and a host of related architecture decisions, are better suited for operating at high scale in Payne's opinion.

1 2 3 Page 2
Page 2 of 3