Eclipse impressions

Friday 8 August 2003This is 21 years old. Be careful.

I wrote a while ago that I was going to try Eclipse with some new Python add-ins. It was not an entirely smooth ride, for two reasons: one, the Python add-ins are very bare-bones at the moment, and two, Eclipse has got to get over itself.

On the plug-in front, I tried Xored TruStudio. Its editor support of Python is not there yet (for example, I couldn’t double-click a word to select it). One advantage: they also have a PHP plug-in for Eclipse, which worked admirably for me.

I downloaded pydev, but TruStudio seemed to still be the dominant Python plug-in, so I couldn’t really evaluate it. Next time I’ll try uninstalling TruStudio first.

About Eclipse: it is an extremely rich IDE, and is one of the best open-source projects I’ve seen in its support for developers helping out. There’s even a book in the works by Kent Beck and Erich Gamma about how to contribute. Eclipse’s Java support is phenomenal, with automatic refactoring tools that sound like research lab stuff.

On the downside: Eclipse has so much general purpose IDE infrastructure, that (as Steve Martin said about the French), they have a different word for everything. What’s a “perspective”? What’s a “view”? I figured out that an “editor” is not the IDE, but instead a document window inside the IDE. I’m sure it will become second-nature, but maybe there’s a first-nature way to describe these things?

Where Eclipse really burns my biscuits, though, is file handling. It’s got the new-age IDE concept that everything lives in projects, which is all well and good, but it has no concept of files outside of projects. Literally, there is no File - Open menu item. Ctrl+O does nothing. To edit a file that exists outside of Eclipse, you have to:

  1. Use the New - File command (!),
  2. In the New File dialog, click the Advanced button,
  3. Check “Link to file in the file system”,
  4. Enter the path of (or browse to) the file,
  5. Enter the name of the file again at the top, because it doesn’t default to the actual name of the file in the file system,
  6. Click OK.

And now the file is in your project forever. Can’t I just edit the freaking file? A friend who works at IBM, developing a product based on Eclipse, says, “I use emacs when I need to just edit a file”. WTF?

And yet, at the same time that I have to live with this “everything must be brought under the Eclipse umbrella” mentality, Eclipse opens unrecognized files with their default system associations, rather than in its own text editor. Working on a PHP project, I created some .sql files to work on the database schema. Clicking them brought up Microsoft Visual Studio! I finally found the way to change it (Window - Preferences - Workbench - File Associations), but it was one more aggravation while trying to be productive in my code.

I know, the thinking is that IDEs can do much more for you if you let them own the files, and collect meta-data, and organize them for you. I understand all that. But if I just need to work with files outside the Eclipse sphere of influence, why can’t Eclipse just bring up an editor and disable the stuff that won’t work.

I don’t mean to be down on Eclipse. I think it has enormous potential. It’s my PHP editor at the moment. I know it will only expand its reach, influence and utility. It’s well-designed from the ground up to be a federation of contributed components, rather than a monolithic project with “extensibility” added on at the end. I know they will work out the usability kinks, and support for other languages will come as the circle of contributors grows. They just need to get over themselves a little.

Comments

[gravatar]
Hmm, I was going to fight with Eclipse to see if it would be cool for C++. I guess I am going to hold off for a while. My impression was that it was a way-of-life for Java, but everything else seems like an afterthought. The comment from "your friend" at IBM is funny. But you should also mention that he would read his email in EMACS if only he still could.

I also know that it isn't the other guy, because he uses vi...
[gravatar]
It's easy to point Eclipse at a directory tree and tell it to create a Simple Project there.
Everything under there is now accessible from Eclipse. Not as easy as ctrl+O but you don't have to import files.

Perspective and view took me a while to grok but it's second nature now.

I didn't like the workspace / project orientation of Eclipse initially either but when you're working on a really large Java project with lots of cross dependencies, it's really terrific. Plus there are so many ways that Eclipse is better than anything else, it's worth the tradeoffs.

The other aspect of Eclipse that's great is the ability to add new functionality. We an this in-house Eclipse plugin that can read Java component description files (in XML) and automatically generate a set of interdependent Eclipse projects. Extremely useful

P.S. I've been reading the draft of Kent Beck and Erich Gamma's book. It's a good read. I met Kent many years ago when he was at Apple. Very sharp guy.
[gravatar]
OK. I have to come clean. I'm "the friend". As Bob points out, once you get used to the project/perspective/etc. user model, you're hooked. Eclipse is easily the best Java IDE I've ever used. But what I find even more amazing than the fact that Eclipse doesn't provide File->Open, is that noone has written an Eclipse plug-in to do that. Maybe I'll look into that in my "spare time".
[gravatar]
The few glitches on the whole are a little distracting, yes, but I could see this being a viable alternative for Java when my trusty IntelliJ IDEA isn't within arm's reach. IMO, IDEA is easier and quicker to use (most of the productivity difference is because IDEA has more built-in syntax checking, instead of relying on the compiler to compile the classes before knowing what's wrong.)

Eclipse's potential to expand into other areas is great. I've heard that the C Development Tools are doing well, maybe the other programming languages (there are others? j/k) will rise to the same sort of level in time. And of course, it's open source, whereas IDEA is not. And Eclipse is a lot better than NetBeans.

p.s. SWT sucks, but as long as you don't have to code in it, it's not bad. :-)
[gravatar]
You're right, TruStrudio is much better than pydev. Their last milestone seems to fucntionate rather good, and I think it will be the most attractive IDE for PHP and python when their final release will appear.

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.