ActiveState Komodo 3.0 Pro
August 26th, 2004 • General
The author is not affiliated or sponsered by ActiveState. He only likes to talk about products he likes, so this review is totally objective, and the author’s point of view might not represent ActiveState’s.
Before 3.0, Komodo used to be too slow to an extent where I’d rather run notepad instead. With the newest release, Komodo is able to cope with dynamic syntax checking, class analysis, and customizable interface without loosing its speed; in fact, Komodo now runs much faster than ever before. It even runs faster than some native IDEs whether on Windows or on Linux.
So what makes Komodo so good?
Well, it does have all the basic features you’d expect from a full-fledged IDE, like Perl, Python, PHP, Tcl syntax highlighting, local and remote debugging, regex search, bookmarks, those things that you can’t live without. But there are some particular features that I liked very much, and couldn’t find in any other IDE. So here’s a list of what I liked most about it:
Obviously Scintilla provides much of the lexical parsing and highlighting, except that Komodo makes editing a joy, it can fold blocks of code making it easier to read large files where certain sections can be folded and ignored while reading, it can auto-complete PHP functions and show it’s arguments, even those classes that you have just defined, Komodo can auto-complete class objects and attributes.
If you are a PHP developer and fond of literate programming Komodo can
help with writing and reading phpDocumentor comments, and trust me,
your colleagues will thank you for it. You just start with a
and Komodo will recognize that you’re writing a phpDocumentor comment and will
add a new asterisks as long as you’re still writing the comment. But that’s
not half as good as being able to read phpDocumentor comments in Komodo’s
Code Browser. Here’s a sample of PEAR.php analysis:
Komodo’s snippets are one of it’s most powerful features. Unlike regular
snippets in most editors, Komodo is capable of memorizing the caret location,
the current selection in the snippet, and maintaining indentation. So from now
if statements don’t have to be inserted with the caret
after the closing curly, Komodo simply remembers where the caret position was in
the snippet, and places it there after inserting the code.
But wait that’s not all, Komodo’s snippets have variables, it can prompt for values to be inserted, use the current selection to create a snippet, insert current date and time with applied formatting, current file path or directory, line number, it can even generate GUIDs (Global Unique Identifiers) every time you insert the snippet!
There’s a particular technology that makes Komodo so powerful, XUL. Unlike usual applications, like Microsoft Office XP, and those that use the “XP” look, the toolbar and menu are easily customizable. No more hair pulling times where you can’t remember what to drag from where, or why an application is behaving so badly just because you wanted to add a toolbar button. Komodo’s “New Custom Toolbar” and “New Custom Menu” make it much more obvious how things work, all you have to do is add elements to a menu or a toolbar as if it was a folder, and Komodo will automatically add that to it’s interface.
Komodo’s project management is also a great tool for busy developers, not because it can remember all the files in a certain project and integrate that with source control (CVS and Perforce), but because projects can have their own toolboxes, their own custom menus and custom toolbars, so whenever you open a project you’ll get your menus and toolbars back, and all that information isn’t stored in some centralized location (like Windows registry), but in the project file, meaning the same file can go to another developer and he’ll end up with the same layout and tools you’ve been using.
In Komodo, almost everything is a package, starting from toolbox folders, ending with projects. Everything can be exported as a package and imported elsewhere, the menus, the toolbar, the project configuration, snippets, etc. Komodo can even remember settings for each individual file, like line endings (UNIX, DOS or Mac), highlighting scheme, indentation style and more.
So next time you want to send another developers some of your work, don’t just send the source files, but send a Komodo package, he’ll know what to do.
Komodo’s debugger isn’t much more special than other IDEs’ debuggers, it has the regular Step In, Step Out, Step Into, and it can be executed remotely. But what’s good about it is that it can be automatically installed, you don’t have to mess with php.ini, or Perl’s installation, or Python’s configuration, Komodo does that for you.
For PHP developers, Komodo installs xdebug, for Perl, Tcl and Python developers Komodo already knows how to use the interpreters for debugging, so you don’t need to worry about it. And for Web developers, Komodo has what you love most; a built-in browser. So whenever you run a code that needs to be viewed as a web page, Komodo can help you with it.
Something Perl developers will like, a built-in regular expression testing tool. Rx Toolkit takes a regular expression and some sample data and finds out the matches, the groups, number of matches, etc. You don’t even have to memorize regular expressions anymore, Rx Toolkit has shortcuts for all regex keywords and characters, and even better, it has Perl’s modifiers, so now you can know exactly what was wrong with that four-line regular expression you’ve been writing.
With all this power, I don’t know how Komodo missed some obvious things! Komodo can search files in a directory for a keyword, but it can’t replace them, a feature most simple editors provide.
CVS and Perforce integration is great, but the problem is that I don’t use either, I’m a fan of Subversion, and it’s taking CVS’s place slowly, but sure. Komodo doesn’t have built-in support for Subversion, sure I could add some commands to my toolbox, but still, I don’t want to do that, I’d like it integrated in my IDE.
Komodo’s column editing is not bad, but you’d expect much more from something as big, there’s no column editing mode, only column selection, you can’t use your keyboard, you insert incremental numbers in columns, you can’t sum a column selection. After a while of using this feature, I started to wonder, what’s it really good for?!
No plugins, which is probably the most irritating out of all. I’m a developer, I don’t mind coding something when I need it, but Komodo gives me no easy way of extending it’s functionality, I can’t add lexers, new language highlighting schemes, context menus, etc. XUL makes plugins much easier to implement, so why not make Komodo even better?
Zend Studio has a particular feature I liked, you can open as many files as you want and browse through all available classes and their relations, even if they’re located in different files. Yes, Komodo can do that, but only for single files not for all open files, which I think would be a nice add-on.
Overall, I love Komodo, it’s my favorite IDE right now, and I hope it stays that way, it’s gained so much speed over the past months, it doesn’t seem to choke as much as Komodo 2.5 used to, and it has (well almost) everything I’d need to code in any of my three favorite languages, Perl, Python and PHP. So if you still didn’t give it a shot, go ahead and download it from ActiveState’s website.