DLS Review: Why is Komodo Edit the best free PHP editor on the market today
I have strong feelings about text editors for programmers. I'm not talking about Vim or Emacs here; I'm talking about stuff for mere mortals -- PSPad, jEdit, Notepad++. Those are all editors I have used extensively over the years, and each time I become convinced that "this is it -- this is the last text editor I will ever need," only to then find out it wasn't quite as great as I thought.
With jEdit, it was the lack of support and horrible forum system; with PSPad, the closed source and disorderly add-on system; Notepad++ was a long time ago, and I honestly can't remember what its main issue was. However, it's also true that my requirements change over time; for example, these days I code far more PHP than I used to.
When my current wave of PHP coding began, I spent some time evaluating different editors and IDEs. After running through the text editors I already knew, I started looking at IDEs. I checked Aptana; it actually seemed cool, but they ditched their own PHP extensions for Eclipse's PDT, which is really underdeveloped. I looked into Eclipse itself, too, and was horrified by its clunkiness.
I remember checking some other options, until I finally came across Komodo Edit. After spending a fair bit of time evaluating it, using ActiveState's forum system, installing add-ons and tweaking it, I can honestly say I feel it's the best free PHP editor available today. To see why (with lots of screenshots), continue reading after the fold.
First, a little bit about the editor itself: It's open source, and it's an ActiveState product. It has an "older brother" in the form of the commercial Komodo IDE, so it's actively developed. ActiveState runs a very active forum system, and it has a large community of users. Also (one of the best features, IMHO), it's Mozilla-based; it runs using the same framework as Firefox, and the next release (Komodo IDE/Edit v6) will be based on the same codebase as Firefox 3.5. That means it's cross-platform without being Java (yay!), and that it has features such as the familiar about:config and a full-fledged add-on system.

A little bit about configuration: There are numerous config preferences. In fact, a bit too many; a "quick search" feature would have been very helpful. Still, the upside is that you can tweak just about anything you like. Below you can see the Key Bindings configuration dialog; this one does have quick search, letting you find the command you need very quickly. Multiple keystroke bindings are supported, so you can use things like Ctrl+K, V (meaning, hit Ctrl+K, then hit V). As you can see, key bindings are saved as "schemes," and there's a full-fledged Vi mode (which I haven't tested, because I don't know the first thing about Vi/Vim).

Another point worth noting is that configuration can be migrated very easily. Again, this is due to the product being Mozilla-based; configuration is file-based, and saved within the user's own folder. So backing up is easy, and migrating settings to another computer is just a matter of copying files over.
This next screenshot shows some of Edit's advanced macro capabilities. As you can see, two languages are supported: Python or Javascript. One thing which was rather irritating is that the built-in macro recorder actually records using a Javascript API which now considered deprecated by ActiveState itself, and that means you don't get code tips when editing macro lines that were created by the recorder. That makes the recorder close to useless, actually (IMHO, at least). Another thing I've uncovered is a weird bug with the search/replace functionality: I recorded a macro doing a simple search/replace, and when I ran it, it failed. I didn't touch a thing. The macro recorder simply used syntax which is no longer supported. So, this is clearly a case of "the right hand doesn't know what the left one is doing."
Still, the macro capabilities are quite impressive, especially if you hand-code the macros. Here's what the dialog looks like:

Macros can be invoked from the toolbox, using key bindings, and also by events such as file-open or file-close. A macro can even abort a file close process.
One super-cool feature is Zen Coding, which I have just covered in some detail. This is implemented as an add-on, and is a great example of how deeply add-ons can integrate into the system. Not only do you get menu entries, but complete key binding support as well, through Edit's built-in key binding configuration dialog (shown above).

And here we come to a really buggy area, one that I hope will be fixed in version 6. This is the "scheme" dialog, which lets you set syntax highlighting schemes or themes. Only it has a really annoying bug: You select a scheme, which sets a certain color for, say, comments. You then scroll up to another scheme, which has no preference for the comment color. At this point, Edit keeps the previous scheme's color setting for this element, even though you never applied it (you just scrolled through it), and it may clash horribly with the scheme you selected. This means you sometimes get stuff like black text on black background. You can never be completely sure that the scheme you applied really does look like it's supposed to look. This is the worst area of the application, without a doubt.

Okay, on to a nicer element: live preview! The live preview function goes for PHP files, too. You just point it at your local PHP installation and set some "URI mapping" options, and then you can instantly preview PHP files executing locally. The refresh is immediate, too. Edit the file, save it, and see the preview change. There's no manual refresh needed. I love that feature!

One of the main reasons I like this editor so much is that it has very nice auto-completion support. Here's a simple autocompletion tip for a paragraph tag in HTML; when you switch to PHP, the code tips become more informative and display function arguments, etc.

Another sweet feature that Edit offers is on the fly PHP syntax checking. Yes, you get a cool squiggly, just like in Visual Studio. The error you see below is because I didn't end the top line in a semicolon.

The editor component used is the powerful Scintilla (the same editor component that Notepad++ and SciTE use), so it natively supports code folding. You can select one of several styles for the fold marks; this one is called "Curvy Trees."

It also has FTP access! This is, again, implemented via add-on, and it blends nicely with the existing interface. It just adds another pane to the left-hand toolbox, which lets you browse local files as well as FTP folders. You can also set favorites and save passwords (although I don't).

This is what that said folder tree looks like. You can't really see because I zoomed in, but this is on the left side of the window. To the right is the edit component. By the way, when you open multiple files you get tabs - Mozilla-based, as we said.

When selecting Help > List Key Bindings, you get a nice HTML page in your default browser, showing you every key binding that's active for your current scheme. This page is very easy to print out, but you can also quickly look for a specific function using your browser's Find function.

Bottom line: Edit is a fantastic product. Even though some parts don't work well (most notably the macro recorder and the scheme engine), I feel it's a very useful tool for any PHP developer. In my opinion, it is indeed superior to any other free editor I've tried for this particular purpose.














Comments
22
Subscribe to commentsMark BApr 30th 2010 11:24AM
Downloaded and I'm sold! BTW, quick link to download page: http://www.activestate.com/komodo_edit/downloads/
Erez - love the developer tool reviews - keep em coming!
der_tuxmanApr 30th 2010 11:30AM
Looks like I'll stick with Vim. :)
libecoApr 30th 2010 11:44AM
Firefox based.... Does this mean it's also extremely slow?
I've been using Notepad++ for the past few years, but I recently had the feeling it is getting slower and slower with each new release. I'm actually considering the new Dreamweaver CS5. If I choose a slow application, I might aswell choose one with loads of nice features. WIll try Komodo too though.
MartinMay 2nd 2010 3:12PM
What about Subversion support? I am really tired of Eclipse.
Christian St. CyrApr 30th 2010 11:58AM
I'm liking the tools posts, the previous one about zen was also great. Keep it up.
Crazy SerbApr 30th 2010 12:56PM
Hmm... you can only edit remote files on the server (AFTER installing the remote tree plugin), so there is really no true push option like other IDEs have (edit the local file and push it to remote server via a single click/shortcut).
This has always been a pet peeve of mine with these "fancy wannabe" editors - I've had the remote connection fail way too many times while the upload of the changed file is in progress, thus losing the file itself for good (it being corrupted, not transferred fully, whatever) and having pulled too many hairs out of my head because of that (then having to revert to an old backup and redo all the changes, etc, etc, wasting some more time).
http://community.activestate.com/forum/regarding-ftp-images-and-drag-and-drop
How hard is it to implement something like that... geez?
gmacJul 28th 2010 11:39AM
I just want to second this point.
Komodo sucks in terms of editing remote files. I've lost so much work because a connection timeout or failed.
Worst of all, it directly saves the file on the server. There is no back locally once the server side file is corrupted.
JaymoonApr 30th 2010 1:52PM
I've been using Komodo Edit for awhile now and love it. I got hit with the occasional slow downs, and started looking for an alternative a few days ago. Notepad++ was the closest, but just not quite at the same level of Komodo Edit.
So, for what I use it for, it's great, free (which is always a plus), and doesn't take a lot of customization to get it the way I like it.
Crazy SerbApr 30th 2010 2:03PM
Look up WeBuilder by Bluementals... I've been using that for a while on a separate machine, and it's freakin' awesome. Built in FTP/Project Manager, almost everything that Komodo has as well... just, awesome. And it works great, yes.
RaverenApr 30th 2010 2:34PM
I've also had a go at most every IDE and programmers editor at one time and ended up returning to Notepad++, even though it lacks IDE features (and is continuously coming up with critical bugs :/ ).
Recently I read about PHPstorm:
http://confluence.jetbrains.net/display/WI/Web+IDE+EAP
It's only a beta yet, but is as stable as a rock (I've used it for more than a month), and I am completely in love with it. It is Java based and you do need a decent rig in the long term, but it's well worth it. I only had a little trouble to configure due to lack of documentation still, but virtually every aspect can be customized and you can work with it off the bat very fluently.
What I love most about it, it has most if not all Notepad++ features, namely the irreplaceable keyboard shortcuts, where most IDEs fail in my perspective.
Again, it's really young and very poorly publicized, and I'd love it to have a wider community in the long run, as I'll be sticking to it for sure.
fincanApr 30th 2010 3:26PM
Komodo IDE is also fantastic for perl coding.
everydaypanosApr 30th 2010 4:04PM
Right now there is NO proper PHP IDE in the market. Paid or Free. Most of them are just notepads with multi tabs. Which is sooooo 1995. Even those that have auto-completion, do not support dynamic classes. And those that support both of these do not have a proper WYSIWYG editor.
Finally, I know that PHP is supposed to be a bunch of text files on a server, but nowadays it would really make sense to have some kind of "Build Project" like Visual Studio, the king of IDEs, that would minify the code(PHP, JS, HTML and the lot).
This is, right now, the most disappointing chapter of the Open Source community, the Web Community and everyone who supports PHP.
I right now use Dreamweaver, which is the best WYSIWYG, with minimal PHP support. I will transition to another solution seen here in previews.
[Super Secret Dev Screenshots]:
http://www.flickr.com/photos/25573902@N03/4565868947/
http://www.flickr.com/photos/25573902@N03/4566498960/
http://www.flickr.com/photos/25573902@N03/4565869315/
Alex MApr 30th 2010 4:44PM
I've used Notepad++ for a few years, and I really like the fact that I can throw anything at it and get its syntax highlighted. I don't do web development exclusively, so that's a big plus for me.
But Komodo looks really cool. I'll have to see if it has add-ons for all the other languages I sometimes need to tinker with.
Thanks!
Edwin MartinApr 30th 2010 4:50PM
You get all enthousiastic about Komodo and why it's "the best free PHP editor".
Then you mention a couple of features which are standard in all IDE's for many years. You also mention some major bug in Komodo.
How did you come to this conclusion?
Have you looked at Aptana (again)? Netbeans? PHPStorm? Dreamweaver?
(Okay, the last two aren't free).
balvedaMay 1st 2010 10:35AM
I use Sublimetext. I mean, I really don't need fancy IDE-tools for my php-work.
ChrisMay 4th 2010 10:48AM
Honestly, NetBeans owns komodo when it comes to PHP. The guy who says Komodo Edit is the best free PHP editor on the market today obviously didn't search around hard enough to find something decent, maybe it was the first one that popped up on google?
Komodo has no site support (ftp,sftp,whatever protocol u use to publish) built in natively, and the add-ons available blow .
If you downloaded NetBeans and have them open the same project side by side, you can easily see where Komodo is crap.
Netbeans has awesome versioning integration, marks versioning information in the gutter, so you can see past versions code changes just by hovering the gutter!
I will say NetBeans does have some memory issues but it is worth it. Otherwise just use like the other guy said, notepad++ or textmate/textwrangler.
ChrisMay 4th 2010 10:50AM
Also forgot to mention has awesome code completion for HTML/CSS/JS (including your fancy frameworks, extjs, jquery, mootools, etc). Just overall rocks the socks off most paid PHP editors.
It really pains me to see that your promoting a piece of crap, or maybe you just haven't been in the coding game all too long?
EricMay 5th 2010 4:22PM
first thing i always do in a new text editor is install the bitstream vera sans mono font. Because it is very easy to tell the difference between a zero and an O
StasMay 11th 2010 10:54AM
I use free PHP IDE - Codelobster PHP Edition.
It also has special Drupal, Joomla, WordPress, Smarty, CodeIgniter and JQuery plug-ins.
RustikMay 11th 2010 11:01AM
http://www.codelobster.com