Hands-on with Node.js support in Komodo IDE 7

ActiveState has released a new version of the Komodo integrated development …

ActiveState has released a major new version of the Komodo integrated development environment (IDE). The update, which is called Komodo 7, introduces several useful new features and support for additional programming languages.

Komodo is a high-end commercial development tool for programmers who work with scripting languages such as Python and Ruby. It's especially well-suited for developing large-scale Web applications. It supports code completion and breakpoint debugging for a relatively broad number of programming languages.

Komodo is built on top of Mozilla's Gecko rendering engine with the XUL user interface toolkit. Some of Komodo's underlying architecture is inherited from Firefox, including a rich add-on system. The core editing components of Komodo IDE are developed as open source software and are shared with a free standalone editor called Komodo Edit that lacks the IDE's debugger and other advanced functionality.

Some of the major new features introduced in Komodo 7 include support for real-time collaborative editing on code files, a new built-in profiling tool for Python and PHP, a much-improved syntax checker, and the ability to synchronize your settings between computers. Alongside these new features, Komodo 7 also adds support for several new programming languages and frameworks, including CoffeeScript and Node.js.

I haven't had a chance yet to try all of the new features, but I put the new Node.js functionality to work during some hands-on testing. Komodo's Node.js support isn't as mature or robust as its handling of other languages yet, but it still proved useful for Node.js development.

The built-in debugging support for Node.js is fairly comprehensive and well done. In addition to showing you the value of your watch expressions when you hit a breakpoint, it will also show you a tree of all the variables within the current scope. You can expand data structures and objects to see their contents. When you use the debugger to step into an expression, the IDE can find and display the function you have stepped into even if it is in another module.

Komodo's newly improved syntax checker is useful and very functional. It picked up errors in my JavaScript code, such as unmatched parentheses and missing operators, almost instantly. It will tell you the line and column and take you to the right place when you click the entry in the error panel.

Komodo's code browser, which gives you a visual overview of the functions, objects, and variables defined in the currently active file, works relatively well with JavaScript. It's not as useful as it could be for Node.js development, however.

Due to the event-based nature of the framework, a lot of code in Node.js applications tends to be implemented inside of callbacks. This means that you end up with a lot of indistinguishable anonymous functions in the Komodo code browser. In cases where you have an anonymous function bound to an EventEmitter signal, I'd prefer to have the code browser show the event name. That issue aside, the code browser is still quite good for Node.js programming when you are working with more conventional JavaScript.

The major weak area for Node.js support in Komodo 7 is its code completion. In order to get code completion on libraries, you have to manually configure the IDE so that it knows the paths of third-party modules that you want to use. It is supposed to be able to scan other files in your project by following the require statements, but it seemed to have difficulty doing so with the trivial project that I used for my testing.

There are many other nice things about Komodo that I haven't touched on in this article but are worthy of praise, such as its deep extensibility, excellent Vim emulation mode, and thoughtfully unobtrusive approach to project management. Those characteristics and broad language support are the reasons why we have historically given Komodo our stamp of approval (we even included it in a gift guide once).

The new version builds on all of those strengths and continues to introduce useful new functionality. The Node.js support is a welcome addition, but still needs further work before it will be as strong as the IDE's existing support for other languages.

The Komodo IDE is currently available for $245 from ActiveState on sale. At that price, it probably isn't going to be practical for users who are just looking for a dedicated Node.js development environment. Komodo remains a good value, however, for professional developers who work on large projects and regularly use several of the programming languages supported by the IDE.