ActiveState's Komodo, from the purveyors of ActivePython and other Active languages, is available in two editions, the Komodo IDE and the free Komodo Edit version. The free edition is more or less an editor with some additional tools. It does not have a debugger, code browser, or interactive shells. It is missing other capabilities, the details can be found in the comparative features table on the ActiveState website.
Komodo is a multilanguage IDE, supporting Ruby, Perl, PHP, and Python. I tested version 5.2.4 and did a bit of work with the beta of version 6, which became available while this article was underway.
When you first launch Komodo, you'll notice that the initial start time is quite long. This is because it is reading modules and constructing its Code Intelligence database. Subsequent launches are as quick as the other IDEs tested.
Komodo's source editor provides both auto-completion and call tips. You can extend auto completion to any module by setting the pythonExtraDirs preference; Komodo will scan the specified directories for Python modules and read them to fill its code intelligence database. When you type in a function, Komodo's call tips will show both function prototype and docstrings.
Beside the editor window you'll find source and object browsers. The source browser shows (and allows navigation in) the files that comprise the project, while the object view lets you browse and view the project's classes, methods, functions, and more. The source editor also lets you quickly turn a piece of code into a snippet (template). Simply select a block of text in the editor and drag it into the Project pane, the new snippet will appear as a separate entity in the project tree, ready for reuse.
Komodo's toolbox, found in the right-hand sidebar, is a handy storage container for Komodo components. Into the toolbox you can drop links to files or folders, templates, code snippets, URLs, macros and more. In a team development scenario, you can establish shared toolboxes and share toolbox content among team members.
Not only does Komodo's editor support multiple languages, it includes debuggers for Perl, Python, PHP, Ruby, Tcl and XSLT. Komodo's debugging core is based on the open source debugger protocol DBGP, which ActiveState developed in an earlier version with the assistance of the author of the DBGP client for PHP (that client became xdebug). Komodo provides the usual breakpoint capability, but adds to that a function call breakpoint. A function call breakpoint is not set on a particular line of code, but is triggered whenever a function is entered or exited.
Komodo supports remote debugging, but you have to install a remote debugger client package on the remote machine. (Komodo provides versions for Windows, Linux, and Mac.) You also have to place a debug script in Python's path on the remote machine. Finally, the IDE can also perform postmortem debugging on a remote session via the
breakOnExcept() function. Call this function, and when an exception occurs and reaches the top level of the Python application, a debug session will be triggered.
Komodo 5 has limited Python 3.x support; Komodo 6 will have full support for Python 3.x. Komodo 6 will also have a new database explorer, which will let you examine tables, view schemas, and issue SQL statements.
Unlike many of the open source IDEs, Komodo has no prerequisite libraries or frameworks to install. It is an all-in-one solution. Komodo has good documentation and is a good IDE, particularly if your development requirements take you outside of Python and into other dynamic languages.