Review of Komodo 2.0

Recently, ActiveState released the latest version of their excellent Komodo IDE (Integrated Development Environment). This new version, 2.0, which is available for both Linux and Windows is a great advancement over the previous 1.2 series. A lot of hard work and care obviously went into this release, warranting the major upgrade in version and, of course, upgrade fees that go with it.

Installation is easy. For Linux, simply download the tar.gz file from ActiveState’s website and untar it. Once it’s unarchived, execute the script. It will ask you where you wish to install Komodo and will even setup a symlink for you to quickly execute the program. In Windows, an executable installer does the job for you. Once installed, you’re ready to begin using Komodo.

The IDE is for multiple languages. It is designed primarily to be an IDE for PHP, Python, Tcl/Tk, and Perl, however it offers basic support for many other languages. This basic support is more or less restricted to syntax highlighting and some other minor functions. Some of the languages that Komodo supports in this way are C, C++, Java, Pascal, Ruby, VisualBasic, and even SQL syntax, among others.

Komodo has a very nice means of organizing your code. You can group files into Projects, and when you first start Komodo, a list of recent files and projects will greet you. Clicking on any Project file (denoted by the .kpf extension) will load the project and list all of the files in the left-hand pane for easy access. Simply right-clicking on the file you are interested in and selecting Open File will open the file to the main central pane. You can have as many files open as you like, each marked with a tab for easy back-and-forth movement.

Right-clicking on the Project name will give you a variety of operations you can use on the Project itself. You can add new folders, existing files, existing remote files, import a group of files from the local filesystem and so forth. You can even add code snippets, dialogs, commands, and macros to your project. Finally, you can also do Source Control on the files in the project, things like generating diffs between the local file and the one stored in CVS, updates, commits, additions, and so forth.

The CVS control in Komodo is top of the line. You can access CVS (Concurrent Version System) repositories over SSH, using the traditional pserver approach, and so forth. This means that for any developer working on a group project, such as most Open Source projects, can link Komodo directly to your CVS repository.

One of the new features in Komodo is the Toolbox, which lives in the right-hand pane of the Komodo window. In the Toolbox you can store all kinds of things, like macros, commands, code snippets, files and folders. The Toolbox is a very versatile “repository” for often used components such as files, code, web services, URLs, and so forth. By default, a few items exist in your Toolbox, such as a link to Slashdot, an external command that runs the wc tool so you can count the number of words in a highlighted selection, and a copyright comment that can be inserted with a simple double-click. The Toolbox is a great place to put links to coding web sites you might be interested in.

Another very nice feature is code folding. What this does is make your code similar to a tree view in that you can collapse sections of code. This works by indentation, so properly indented code is extremely easy to view. Simply collapse a function or large segment of code to work around it. This offers a great bird’s eye view of your code.

One very useful feature of Komodo is the graphical debugger. With it, you are bound to save yourself a lot of time by quickly tracking down bugs and typeos in your code. With it’s simple background syntax check, Komodo will quickly alert you if it finds a syntax error in your code, and underline the position in the code that Komodo thinks is the problem. While this might not be 100% accurate, it is close enough to really help track the problem down. It also comes with all of the “standard” debugging features such as breakpoints, watches, stepping, and so forth. Going one step further, Komodo provides for the ability to do remote debugging; useful when working on a live site. The remote debugging can be used with PHP, Perl, Python, and Tcl code. On a local system, Komodo can create a CGI environment to help you run your programs as they would in production, without wreaking havoc on your live systems.

There are two versions of Komodo that can be purchased, the Professional and Personal editions. Some of the more powerful features, such as Source Control, GUI building, the Visual Package Manager (for making sure perl modules are up to date), are only available in the Professional version. The GUI builder is useful only for those using Tcl/Tk, Perl, and Python. The value of the Source Control is almost in itself worth the increased price for anyone who does a lot of work with CVS or Perforce.

One other nice thing is that Komodo is built on the Mozilla engine, and uses a lot of Mozilla technology in the program. Granted, it is using an older version of Mozilla as the base (0.9.5), but Komodo has made their patches to Mozilla available to the community at large due to the Netscape Public License and Mozilla Public License, both of which govern Mozilla itself.

All in all, Komodo 2.0 is a top-notch IDE. It has progressed quite a bit from the older 1.2 series and a lot of new and really handy features have been incorporated. Existing Komodo users should seriously consider the upgrade; it is more than worth it.

If you are looking for an IDE to use with web development using languages like PHP, Python, and Perl, there are a few choices for you. While Komodo is certainly not the cheapest solution, it is perhaps one of the nicest. While other IDEs achieve multi-platform use through Java, Komodo is a solid application that runs native on Windows and Linux, without requiring Java, eliminating that extra overhead. The IDE is also smooth in both Windows and Linux, unlike other IDEs that look fantastic in Windows, and not quite so nice in Linux. For a Linux-based developer, Komodo is a must. For a Windows-based developer, there are more options, but Komodo should be evaluated before making your choice. For any cross-platform developers, working on both Linux and Windows, Komodo is pretty much what you want.