The New Everything
In certain Silicon Valley circles, Node is known as The New PHP. Or The New Ruby on Rails. Or The New Black. It's The Next Big Thing, according to, well, just about everyone who uses it. "For a while, I called it The New Rails," says Tom Hughes-Croucher, the author of the upcoming O'Reilly tome Up and Running with Node.js (preview PDF) and the chief evangelist at cloud computing outfit Joyent, Node's primary steward. "But then I realized it was getting more views on github than Rails. So now I call it The New PHP."
Ruby on Rails was the first major project hosted on github, the popular open source repository, and though Rails still has more "followers" than Node – roughly 7,000 versus 5,000 – Node is indeed getting more views. And whereas Rails is a mature language with a good seven years of development behind it, Node debuted in 2009. We're still a long way from a 1.0 release. Version 0.4 arrived just last month.
In addition to sponsoring the Node open source project, Joyent offers a hosted version of the platform, an online service that lets developers build and deploy apps via the browser. Known as no.de, the service still in beta, and it has sparked some interest in notable places. "Awwww yeah," Google App Engine engineer Ikai Lan tweeted in mid-February. "Got my Joyent node.js hosting invite."
For Gerad Suyderhoud, who organized the first Node hackathon, Node Knockout, this past summer, the platform is the next major phase in the always-rapid evolution of web development. "First there was C, which Amazon was written in," he says. "Then there was Perl, and Craigslist was written in Perl. Then there was PHP and Facebook, and then Rails and Twitter. With each of these things, they solved a lot of hard problems, but then new problems arrived. Node solves the next set of hard problems, the problems that come with all this real-time stuff."
Though Node runs more than a few live applications – including Voxer as well as Mockingbird, a web app for building site wireframes, and LearnBoost, a gradebook service for schools – the platform doesn't yet drive a Facebook-esque mega-site. But Suyderhoud, like others, is sure it will. Held at Joyent's offices in August, the Node Knockout competition attracted 500 developers, and it spawned at least one commercial application, Word2, a massively multiplayer version of Scrabble.
But Node isn't just a tool for building applications and websites. It's also a means of driving so-called cloud services – i.e., the backend services designed to run the next generation of applications and websites. Joyent uses node to underpin its Amazon EC2–like infrastructure cloud, a service that provides on-demand access to readily-scalable processing power and storage. Cloudkick, the cloud-management startup recently purchased by Rackspace, is writing a new set of server-management tools atop Node. And Rabbit Technologies, the cloud-messaging outfit now owned by VMware, is offering rabbit.js, an extension of its RabbitMQ open source messaging platform based on Node.
Ryan Dahl at Node Knockout
"With the cloud-management stuff, you have all these little agents sitting here and there, and they're not necessarily dealing with a large amount of throughput," says Ryan Dahl, the man who invented Node as an independent programmer and now works for Joyent. "Writing these little things turned out to be really nice in the [event-driven] world. You don't have to deal with different threads. You just have to receive messages and send messages."
At the same time, Node is being moved from the server side back to the client. HP uses node on its Palm webOS handsets and upcoming TouchPad tablet, using it to run background services on the devices themselves. It's yet another indication of how efficient the platform is. "It turns out, you can really scale it down," Dahl says. "It doesn't require allocating gigabytes of memory. It has a fast startup time. It has a low memory footprint. ... It's something that's small enough to run on an embedded device."
Next page: Chip off the old non-block
an iPhone app that lets you talk, listen, and leave voice messages
So they've written an iPhone app that lets you use it like a telephone?
I think you are missing the point
C++ is fast, yes. But often program speed is more driven by the algos used than by the language used.
If you take the example of BitTorrent, this is code that is optimized for downloading files. Yet, it is written in my preferred language, Python, which usually distinguishes itself by coming in dead last in performance tests.
It's just that what the coder of BitTorrent did was clever - he realized download time was NOT CPU-bound which is where C++ rules. It was network-IO bound, so it was better to optimize WHAT you would be doing (chunking across peers) rather than HOW (which language you are doing it in).
Last keep in mind that languages like Python shell out a lot of their high-cost computations (around data structures like hashmaps and lists) to... heavily optimized C libraries. So a clever coder in Python can sometime get a fast program by using an elegant design that leverages already-written C code. I doubt JS is any different.
There'll be plenty of jobs left for yah C++ jocks, fear none.
C++ still has a place
I was reading this debate with interest, but I have to step in here.