Why would anyone buy a commercial IDE when working with languages such as Perl, Python, PHP, Tcl and Ruby when there are already plenty of free Open Source alternatives? There is, in my opinion, a one word answer to that question: quality.
Don’t get me wrong. I’m not dismissing Open Source IDEs. Some of them are good; one or two are extremely good. Even so, if I were looking for a multi-language environment, supporting two or more of the languages mentioned above, I have to say that Komodo would be my first choice.
Komodo is more than an editor. It also includes an integrated project manager and a debugger. In the previous version (3.5), it even provided a visual design tool, or ‘GUI Builder’, but this has been removed from the latest release. At first sight, that decision might seem odd. In truth, I have to say that the visual designer was the thing that least impressed me about Komodo 3.5. It really wasn’t anything like the tightly integrated form designers of Delphi, say, or Visual Basic. For anyone who misses it, however, you will be glad to know that it will be continued as an open source project called SpecTcl.
Before going any further, I must admit to a special interest. As one of the developers of Ruby In Steel, a commercial Ruby programming IDE For Visual Studio, I think I can claim to be better qualified than your average reviewer to give an informed opinion on an IDE for dynamic languages. What I can’t do, however, is claim to be impartial. In an attempt to minimize any bias I have deliberately omitted any critical comment on Komodo’s support of the Ruby language. You should not infer from that omission any opinion (either for or against) on Komodo’s Ruby features.
Editing and More…
While Komodo is more than ‘just’ an editor, its editing features are, nonetheless, its greatest strength. The editor has all the obligatory code colouring features and it provides code ‘folding’ for a range of language constructs such as classes, methods, blocks and loops. It has bracket matching and drag-and-drop copy-and-paste; you can add bookmarks and breakpoints in the editor margin and you can selectively toggle the display of line numbers, white space and indentation guides (dotted vertical lines which show ‘tab stops’).
It has reasonably effective code-completion (what Komodo calls ‘Code Intelligence’) which supplies drop-down lists of methods after variable names when programming Ruby, Perl or Python. While it is not foolproof, the code completion generally does a reasonable job and, for the three previously-mentioned languages, code completion is derived from an analysis of the code itself rather than relying on simple ‘alphabetical completion’ (arbitrary but not necessarily appropriate drop-down lists).
| The licensing of Komodo is pretty generous. It allows a single developer to install the software on more than one system or platform. So if you have several PCs or if you work on multiple operating systems, one license will suffice as long as you are the sole user. |
Browsing and Debugging
One nice tool is the Code Browser. This lets you view a tree-structure showing each identifier in its scope. So, for example, a class inside a module will be shown to be indented beneath a branch showing that module; a method in the class is indented beneath the class and so on.
The Code Browser
The integrated debugger offers the ability to watch variables including drill-down into data types such as arrays, and to step through code after you hit a breakpoint. While I have not tested the debugger extensively with all the supported languages (let alone on all supported operating systems!), I have to say that in general it seems to be quite sluggish. It’s fine for debugging short and simple bit of code but for serious debugging sessions, the speed would be a disincentive.
Other new features in this release include a DOM viewer for to navigate XML, XSLT and HTML in a tree view, Vi emulation for anyone who can’t live without the keystrokes used by the Vi editor and support for user-defined languages so that you can create colour coding for languages that aren’t natively supported by Komodo – though it’s worth noting that Komodo already supplies colour coding for a huge array of languages ranging from ADA to VB (though omitting, curiously enough, the increasingly fashionable D language).
One nice touch is the provision of tutorials (and sample projects) for Perl, Python, PHP and Ruby in the Help system. These only cover the basics, however. As a Python novice, I tried out the Python help in the hope that the tutorial and sample files would give me a speedy way of getting to grips with the Python language. In fact, the language-specific tutorials only covers details of using the features of Komodo (editing, debugging, project management); they don’t teach much about the language itself, though links are given to web-based resources.
| Note: ActiveState has recently launched a free editor, Komodo Edit. This has similar editing capabilities to the commercial edition of Komodo but lacks an integrated debugger and various other utilities. Download Komodo Edit |
Overall Komodo does not absolutely shine at any single thing. It has a good editor and an adequate debugger plus a project manager and various productivity tools such as snippets and macros. But then again, so have many other IDEs. To be honest, if I were looking for a single-language IDE – one that supports just PHP or Perl or Python or Ruby – Komodo might not be my first choice; but if I were looking for an editor that supports two or more of those languages, then it probably would be.
The Komodo 4.0 Feature List
Review of Komodo 3.5