Node.js tools: Server-side JavaScript comes of age

Node-inspired development environments and cloud platforms are rapidly remaking the Web application stack

The integration is still fairly preliminary. While all of the Node packages are available through NPM, you'll have to make some connections by hand to important options like SQL Server. Some people use the REST interface to SQL Server that Microsoft makes available. Although MongoDB is a nice option, Azure offers a number of reporting tools that are integrated directly with SQL Server.

I found that the Azure tools and documentation were quite nice but far from perfect. Microsoft brings a polish that's rare in the world of experiment where Node.js began. It clearly wants to capture Node users with the Azure cloud. Still, I found strange glitches that I couldn't get around. The local emulator would keep popping up alert windows at times, and they made it hard to debug.

Microsoft's investment in Azure is already substantial, and the decision to include Node shows that the tool is drawing plenty of interest in the corporate world. I think the technology holds a great deal of promise in the world of shared virtual servers because it's designed to minimize how much RAM is consumed, a premium in this realm. It would be fascinating to see a thorough study on whether Node is dramatically cheaper for Azure owners based on the consumption of resources.

In theory, you should be able to do more with Azure's smaller servers when running Node.js. The test versions start off using "extra small" instances, which are only 4 cents per minute. The longer you can hold off consuming larger machines, the cheaper your jobs become.

Node.js tools: NodejitsuThe cloud services from Nodejitsu aren't available for users yet because they're still in private beta. However, Nodejitsu is already releasing its tools under a generous open source license, so it's possible to poke around and see what the company is building.

The major tools simplify the process of creating and deploying Node applications to the cloud. The core piece is Jitsu, a command-line tool for juggling Node applications that's similar to Microsoft's Azure tools. You type one command and a new application is created. Type another command and the application starts up for testing. Type yet another and the application will be pushed to the Nodejitsu cloud (coming soon).

If you want to build your own cloud, you can use Haibu, a local application server that allows Node applications to capture as much of the CPU as they might need. Haibu will wrap your application with a layer of code called a "carapace" and turn them into "drones" -- Nodejitsu's term for the copies floating around the cloud.

Nodejitsu is pushing the Node community forward with these tools, and the open source license makes them attractive for companies that want to experiment without being locked into the Nodejitsu cloud.

Reinventing the Web stackThere's plenty of good news to report. The Node.js ecosystem is growing at an exponential rate, and there's a bazillion times more code that's ready to use and enjoy. Of course, it's only natural at this point in time because it's easy to grow quickly when you start with nothing. These tools are building a sustainable infrastructure that's already doing useful work in small corners of the enterprise world.

It's easy to predict that there will be even more advances coming very soon and to imagine new tools that shouldn't be hard to build. I'm sure we'll soon start seeing versions of the IDE that are tightly integrated with the website itself. Many of the Web content management systems such as Drupal have little switches that appear when an administrator logs in. If you want to change a part of the site, clicking on the nearest switch will take you to a screen where you can simply edit some PHP and hit Save. There's no need to fire up a text editor or sift through a pile of files for the source code. Everything is done right on the browser.

This kind of development environment would be ideal for Node, if only because the structure of the framework is even more disjointed than the typical programming language. Node's nested callback structure lends itself to a form-based tool that would have separate sections for code that's executed before and code executed after. I find the callback structure maddening and difficult to work with, especially when it's several levels deep. A nice UI into these depths would simplify matters dramatically. Only geniuses can manage to count all those nested brackets.

An innovation like this would go a long way to fixing some of the biggest problems that people are reporting with Node. You'll have no trouble finding developers' blogs filled with four-letter words because they hate the "spaghetti callback" design paradigm. People can manage this when the site is a simple layer on top of some database, but they go nuts when the application gets more complicated.

The websites of cloud providers like Joyent also show how a good UI will make it easier to work with Node. The instrumentation is much better than that offered by the basic download, and it's probably going to get better as the company invests more into making its SmartMachines a platform that sustains enterprises.

We're sure some serious folks will complain that all of this work is just re-implementing many of the features that Ruby and Java programmers already take for granted. They're right. The Node ecosystem still needs plenty of work before it can begin to compete with the traditional standard bearers that keep the serious sites running. Although much of this new work has some of the polish that serious software should carry, the entire ecosystem still has the feeling of a really, really good project for science class.

If you're a serious developer with a boss who demands real promises of performance, you can wait a year or two before tuning in again. It's still not worth your time. But if you're interested in experimenting and watching the tools evolve, you'll find plenty of interesting software to fill an afternoon or three. There's even enough to drive a simple Web service or database front end if you want to give it a real try.

This article, "Node.js tools: Server-side JavaScript comes of age," originally appeared at InfoWorld.com. Follow the latest news in programming and open source at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.

Read more about application development in InfoWorld's Application Development Channel.

This story, "Node.js tools: Server-side JavaScript comes of age" was originally published by InfoWorld.

| 1 2 Page 6
ITWorld DealPost: The best in tech deals and discounts.
Shop Tech Products at Amazon