Test Center review: King of the dynamic IDEs
Multilingual ActiveState Komodo 5.0 conquers Perl, PHP, Python, and Ruby projects with strong debug facilities, excellent code control, and an unbeatable set of utilities
I'm certainly not suggesting that C++ programmers dump Visual Studio or that Java jockeys jump from NetBeans to Komodo. But developers used to the robust features of first-rate IDEs won't find them in the spartan tools available for dynamic languages. For dynamic language development, I've yet to discover any open source tool that can match the scope of functionality in Komodo.
The dragon's lair
Getting started with Komodo involves installing language-specific interpreters and compilers, but is pretty much a no-brainer. I was up and running quickly.
I find the workspace easy to navigate. All the standard aids are present: tabbed document access, handy toolbox, color-coded syntax guides, and code folding to obscure blocks of code for easier navigation. Komodo is able to import projects based on file system -- replicating the structure -- and can import and export packages for easy distribution among teams.
The code browser shows a hierarchical tree view of all your code -- classes, objects, methods -- that provides quick navigation. A sort-and-search facility lets you easily flip through different views, such as the current directory, current file, or any open file.
Based on actual code analysis rather than static dictionary lookups, Komodo's code completion and background syntax verification are top-notch -- definitely among the best I've used for dynamic languages. However, it would be valuable to see code completion extended beyond objects and namespaces to include variables as well.
Komodo's code fragments and macros help streamline workflow. Apart from some issues with dialog boxes not displaying correctly, macros performed well in my tests. Because Komodo macros allow user interaction via prompts, they can provide more flexibility than static automation.
Komodo's extension and plug-in manager -- similar to the add-on manager in Firefox -- make it easy to see what's installed and to locate updates.
I was also impressed by the SCC enhancements. Along with supporting the version control systems noted above, Komodo now allows you to push entire sets of changes to the repository (versus solo file commits). Although I'd like to see the addition of support for password authentication and a work-around for managing Perforce's proprietary format, Komodo's quick-click transaction history log and code differential tool go a long way toward shoring up change management.
Many pros, a few cons
Komodo's integrated debugger and testing facility are simply terrific. Traditional variable watch lists and static breakpoints are augmented by conditional breakpoints (based on a specific value or event, such as an exception). The unit testing interface also facilitates plan definitions (either globally or within a Perl, PHP, Ruby, or Python project) and helps locate errors quickly and easily across multiple files in complex projects.