General
Text editor/IDE Smackdown
As I looked at my taskbar yesterday and saw three different text editors/IDEs open at once, it brought home the fact that there's no one tool that's the best for any job. At the time I had Zend IDE, jEdit and RadRails open on my work PC, while my laptop had Komodo on the go. So why not just use one for everything? Because different editors have different features that help when developing in various languages. RadRails has built-in tabs for running generator scripts or quickly starting and stopping Webrick servers. jEdit allows you to clone/split windows infinitely to make better use of the space on your screen. It's unlikely any editor will notch up all the features you like as well as support all the programming languages you use (though it's easier if you just use the one language), so we're stuck switching between apps. As such, here's my personal view on each of the editors installed on my computers, either at home or work:
-
Zend IDE
- Best editor I've used for PHP and actually worth the high licence fee, until...
- Recent versions have been slow as hell with no sign of improvement, so I haven't renewed my licence to get newer versions. If anyone's still using new versions and they've fixed it, let me know!
- Window 'cloning' so you can split your screen up and see more than one file at once (or look at different parts of the same file). This is my favourite feature in an editor and it really turns me off any editor that doesn't have it or doesn't do it properly.
- Full project class/function/variable list - this is another brilliant feature. Zend reads in every file in your project to build up a whole-project list of classes, funcs and variables to allow easy jumping to their declarations. I haven't seen another editor that does this, which is a real shame.
- Variable auto-completing - as part of the previous point, with the list of all classes, functions and variables in your project, Zend can then auto-complete any of them for you. Start typing a variable that's already been declared elsewhere and it'll give a list of matching vars to auto-complete. A killer addition to this would be if it could look at children of object vars, to then auto-complete them, e.g. if I type $my_object->a and the $my_object has had a variable called $attributes assigned elsewhere, it would offer to auto-complete it as $my_object->attributes. I think this might be getting greedy though, as no other editors I've used for PHP or Ruby even do the first bit.
-
jEdit
- Runs fast compared to Zend
- Great window splitting (like Zend's cloning, perhaps a bit better)
- Can handle multiple languages - at one point when I was fed up with Zend being slow and hadn't found a decent Rails editor, I used jEdit for both quite well.
- Nice auto-completing of HTML
- Free!
- Great as a quick general-purpose editor, but lacks language-specific stuff like Zend's full-project class/func/var tracking and auto-completing
-
RadRails
- Ruby/Rails-specific, so has some great extras just for Rails. The ability to start/stop Webrick servers and run the generate script from within the IDE is great when building an app up on your own PC rather than a remote server.
- Free again. It's also still only at version 0.7, so there's plenty of time to beef it up before the big 1.0
- No window-splitting, which really seriously irritates me. I can only hope they add it soon.
- No auto-completing, which is a shame but I'm sure it'll be built in as work progresses. I think the latest build has introduced some basic auto-completing for HTML.
- Some interesting other Rails bits like switching between matching controllers, models and views although to be honest I haven't used this feature.
- Based on Eclipse, so a solid base. Zend announced a while back that they would start supporting the Eclipse project, so I'm holding out hope that some of the niftier features of Zend will get ported over for use with various versions of Eclipse.
- Promising for the future.
-
Komodo
- I've started using this for my personal Rails work at home, though not at work as the professional licence is a bit pricey for me at the moment.
- It has good Ruby and Rails support, with syntax highlighting, etc.
- Window-splitting! Not quite as good as it should be though, as you can only have one split (i.e. two views). Why not allow more? One split is better than none though.
- Multi-language, so can be used for things other than Ruby.
- Other things I conveniently can't remember at the moment and don't have it on this PC to remind myself. Basically, it's very good.
-
Crimson Editor
- I'll be honest, I haven't used this one in ages, but it's a good simple text editor with syntax highlighting that can be set up for any language. It's free and decent as a basic text editor. Who knows, maybe it's built up the feature-list since I last used it.