Jef Raskin has an interesting new article about the usability of IDEs. I think he has some excellent points. This is something I am concerned with, and I have no patience for IDEs that are painful to use.
I use emacs. I think emacs solves most of the problems he complains about. It's not at all mouse dependent - quite the opposite really. He mentions the difficulty of wrapping comments. With emacs, just press Ctrl-J when typing to go to a new line - if your current line is commented, your new line will be too. Or type out a long comment and press Meta-Q. Very, very easy. And navigation is a snap, as well.
I've been thinking of these issues recently, since I have been trying out eclipse, a good open source IDE for Java. I felt a little bit guilty about trying it, since I use and contribute to the JDEE project, which is the Java Development Environment for Emacs. However, I think I've learned a bit about what makes each one good.
Eclipse is good because first of all, I strongly prefer antialiased text, and emacs on X11 doesn't have it, and will likely never have it. Eclipse is written in Java, which on Linux uses antialiasing in it's GUI text (at least on my computer it is). Second, it can do great refactoring, making some difficult tasks easy. Third, it can instantly show you your mistakes, and it can usually correct them automatically. I find using eclipse is great if you are doing heavy modifications to the code. Also, the debugger is wonderful.
On the downside, eclipse is slow. It has to do a lot of stuff. Every change you make, every typing you do will cause a little mini-compile to happen so it knows if the code is in a broken state, and where any errors are. Emacs doesn't do it, so typing is fast. And because emacs is a great all-around editor, there's no way any tool like Eclipse can compete with the editing capabilities of emacs (not to mention the flexibility). Plus, and this is a big problem, navigating to different classes in Eclipse is painful. I don't know how to do it without using the mouse. In emacs I have several choices - I can open the file as normal (via the keyboard, which due to tab-completion of paths is very quick), or I can use tag navigation to quickly jump to a class. This is really crucial; jumping around to different files is something that we all do many times a day, every day.
The integration of so many tools into emacs is also a big win for it. I can quickly jump from a Java file to just about any other kind of file, and the right thing happens. I use emacs to read mail, so I can cut and paste code snippets without leaving my app. In X11 this is great, since cut and paste is generally unreliable.
So for the time being, I'm sticking with emacs. Perhaps for heavy code modifications, I might go back to Eclipse, but that's not something that happens every day. I may use Eclipse for debugging though. The JDEE debugger still needs some work. Hopefully I can make some contributions to that area in the near future.
Posted by ahyatt at July 17, 2003 12:22 AM