ActiveState Komodo 3.0 Pro

DISCLAIMER

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.

Built with XUL‘s flexibility, powered by Scintilla, and armed with ActiveState‘s brilliant minds, Komodo became my favorite IDE ever!

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:

Editing

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.

Code Hints

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:

Code Browser

Snippets

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 on, those 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.

Snippet Window

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!

Snippet Variables

Extensibility

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.

Custom Menu

Projects

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.

Packages

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.

Debugger

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.

Rx Toolkit

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.

Object Browser

Probably not as useful as the rest of Komodo’s features, but it might come in handy. The Object Browser indexes Perl, Python, Tcl, JavaScript and PHP scripts and modules making it much easier to search through large portions of code. Not sure about something? Run Object Browser and enter the class name, or the variable or method name you remember, Komodo will locate the files containing that keyword and will highlight the where it’s located.

Object Browser

The Bad

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.

Conclusion

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.



11 Responses (Add Your Comment)

  1. Yet another great review! Although I don’t think that I’ll be starting to use an IDE because of this, I really like the format of this review. The multiple screenshots are great, too, and make it fun to read.

    Mmmm… It looks tempting, though…

  2. I just looked over komodo and one obvious thing missing is support for editing xul files. They can be edited as XML but no nice insert of xul structures

  3. Oliver Smith Feb 5, 2005
    at 5:20am

    The absence of XUL editing support should make one thing very clear: Komodo doesn’t work for its developers – obviously they must be hand editing their GUI’s XUL files. As interesting as it otherwise looks, this should be enough for anyone making a purchasing decision to put a the same wide bert between this product as you would the real life Komodo dragon.

  4. I think my biggest beef with komodo is that it doesn’t allow you to use SSH as a remote file protocol. Even dreamwever has this and the users has been asking for this for a while. Who wants to install and configure an FTP server for this app?

  5. I’m always amazed when people post the question “What is the best PHP editor?” on forums, because there seems to be nearly as many different responses as people.

    Having tried around 3 other editors, I too instantly liked the power of Komodo.

    My main query is “Why don’t more PHP developers out there use it?”

  6. Heh, maybe most of us have travelled to the dark side of VI VI VI.

    I’m not sure why PHP developers don’t use it, maybe because ActiveState has always marketed Komodo as a Perl IDE rather than a multi-language one.

  7. I imagine its not more popular then it is because of the price. At $300 its not exactly a throwaway amount and its still missing a lot of features people consider critial

  8. cars lyrics chasing lyrics cars chasing

  9. Hey, I came across this post while searching for help with JavaScript. I have recently changed browsers from Safari to Mozilla Firefox 3.1. After the change I seem to have a problem with loading JavaScript. Everytime I go on a page that needs Javascript, my browser freezes and I get a “runtime error javascript.JSException: Unknown name”. I cannot seem to find out how to fix it. Any aid is greatly appreciated! Thanks

  10. Please, can you do a more updated review when Komodo 6.0.0 will come out?

  11. I’ve read a few good stuff here. Certainly worth bookmarking for revisiting. I wonder how much effort you put to create such a wonderful informative site.

Other Entries

Tweets from