For those in the market for a quality developer's IDE (Integrated Development Environment), the recently released Komodo IDE 6 is definitely worth looking at. I've been using Komodo since its first version and it steadily keeps getting better. The first few versions were pretty rough, and back then I did more PHP development, so I had opted for Zend Studio, which handled PHP development better. But when Zend decided to use Eclipse for the foundation of Zend Studio, I once again went back to using Komodo regularly. Since then, I have also been developing more in Python than in PHP, which makes Komodo a natural fit. When I do swing back to PHP, Komodo can handle it, as it also does when I need to do a little bit of work in Perl.
Komodo IDE 6 has some notable new features. The first is the Database Explorer, which lets you poke around in local or remote databases. This is a real boon for developers that need to work with SQL data; instead of flipping between programs, you can stay in Komodo to get your work done. It has also redesigned its file management with a new file manager called Places; this also changes how Projects are handled as they are more tightly integrated in the new Places file manager. Places handles both local and remote file systems and allows you to do much more than the previous file manager did — in fact, all file manipulation such as copying, creating new files or folders, and so forth, can all be done in the new Places view.
Regular expression toolkit
One of my favourite features in Komodo IDE, and probably the number one reason why I continue to use the commercial Komodo IDE versus the free Komodo Edit, is the Rx Toolkit, which has received a very nice overhaul as well. Instead of generic regexps, you can choose which language you are writing the regexps for, which is really handy when there are subtle differences between languages. What is really nice about the regular expression toolkit is the drop-down "shortcuts" which allow you to select from some different regexp shortcuts (like "w for word or \d for any decimal digit). With the new per-language regexp support, these shortcuts will changebased on the selected language, such as using named groups in Python, a regexp feature not available in PHP.
There are numerous other improvements in this new version of Komodo, such as support for HTML5 and CSS3 autocompletion, full Python 3 support, more syntax highlighting for various languages such as MySQL, more hyperlink support to jump to related portions of code (such as PHP file includes, code intelligence definitions, and so on), saved workspace support, and speed improvements. All of which are welcome improvements.
In practice, installing add-ons is still troublesome, at least on Linux where .xpi files (the archive type that Komodo, and other Mozilla-based products, use) are not associated with Komodo. If the add-on you want to install is not listed in the Add-On browser within Komodo, such as the MySQL database explorer add-on, you will need to go to the web site and save the file then use Komodo to open the file like you would open any source document. At that point, Komodo will recognize that you are attempting to install an add-on and you can carry on. It's a little less than intuitive, but it works.
Komodo's Database Explorer support handles SQLite out of the box, so getting support for other database types (such as MySQL) will mean a visit to http://community.activestate.com/addons. The MySQL database explorer is located at http://community.activestate.com/xpi/mysql-database-explorer; there is also one for Oracle databases, but nothing as of yet for PostgreSQL.
Once it is installed, go to the Databases pane at the side of your Komodo main window and click the small disk icon with the green + on it to add a new database connection. Here you specify the hostname. In the current 0.3 version of the add-on, you can use the hostname field to specify the path, port, and username/password to connect as. You can use the path to the local mysql.sock file instead of the default /tmp/mysql.sock (for example, using /var/lib/mysql/mysql.sock — it's a little unintuitive, but it works). Once the connection is established, you can navigate any databases that the defined user has access to. The database explorer allows you to run queries, look at the schema for particular tables, and view the database contents.
Another place to receive improvements is the Toolbox. The Toolbox is where you can store snippets of code, commands, macros, and so on. Before, the Toolbox had to be accessed from the Toolbox pane or the pull-down menu, and from there you had to scroll around to find what you wanted. Komodo IDE 6 has a new "Invoke Tool" dialog (SHIFT+CTRL+K) that will pop up a window listing the contents of the Toolbox with the focus on a search field. With this, you can start typing the name or part of the name of a command or snippet you want, easily find it and execute or insert it, and get back to your work.
All in all, Komodo IDE 6 has a lot going for it. I do have one gripe, however. With Komodo 5, the toolbar was way too cluttered. Komodo 6 could have, and should have, improved on this. As it stands, if you have too many icons on the toolbar to fit the width of the window, all of the right-most toolbar icons disappear and are inaccessible. If you want to show the button text to see what all of those tiny little icons do, even more of your toolbar is gone. I'm pretty sure that in earlier versions of Komodo it wrapped around, which meant you would have one awfully thick toolbar with multiple rows, but at least you could see and use all of your icons. Somewhere in Komodo 5, if I remember correctly, this broke and it still has not been fixed. If there is one thing that drives me nuts about Komodo, this is it.
In the grand scheme of things, that's a pretty small complaint. The improvements in Komodo 6 make it well worth the upgrade. It still has the best regexp toolkit that I've found, and the improvements there alone make it worth the upgrade cost. The Database Explorer is nice, but it won't replace the dedicated tools I use yet. It's still in its infancy, so there is definite room for improvement and perhaps in subsequent point updates, it will be improved enough that I won't be reaching for the MySQL Workbench instead.
Vincent Danen works on the Red Hat Security Response Team and lives in Canada. He has been writing about and developing on Linux for over 10 years and is a veteran Mac user.