Bad experience with Eclipse, Part 2
I wrote in a previous entry about the experience I had just downloading and installing Eclipse. This entry continues that story, starting with my first run of Eclipse.
The First Run
Running Eclipse for the first time left me sitting for a while, maybe a minute or two, without any kind of progress bar or status messages. I’m on a 2-year-old laptop, but I think 512MB RAM and 1.8Ghz P4 should be sufficient for starting up in less time than that.
Then, Eclipse asks me to choose a default workspace directory. First of all, again, if Eclipse & SWT are about native integration, calling a folder a “directory” isn’t a good first step in the first-run process. Anyway, I don’t know what a workspace is, and there’s no “Help” or “Details” button which might tell me. (I don’t know why it’s so important that Eclipse needs to ask me right now, either; this isn’t explained in the dialog either.)
The folder filled in for me already is a subfolder of my Eclipse installation called “workspace.” I will learn later that this is not where almost any user would want to store workspaces. On Windows there is a clear separation of program data (Program Files) and user data (Documents and Settings, system registry), and storing the user’s workspace information in the Eclipse’s program data folder violates this platform convention. Eclipse/SWT seem to ignore platform convention yet again, despite their claims of being more integrated into the native platform.
So anyway, not knowing any better, I chose the default workspace folder. I waited at the motionless splash screen for a while longer, then Eclipse opened with a nice Welcome screen with four fancy looking buttons. The buttons said they linked to things like an overview and a tutorial, but there was not a link to the one thing that I would obviously want to do when I first installed Eclipse: create a new project.
Creating a New Project
So I created a new project through the New menu. I planned to use sources and libraries from a project I’ve been working on in IDEA. The new-project dialog used forward slashes instead of backslashes, which I thought was silly and sort of confusing.
The thing that stood out most about Eclipse and the New Project dialog is that it all looked like Windows 98! It didn’t look anything like my computer, all the buttons were beveled rectangles, does Eclipse not even use Windows XP style controls? I don’t understand how anyone can say SWT appears more native than Swing, unless all of these people are using Windows 98.
So, anyway the project creation system confused me pretty good. I said I wanted external folders to be used as my sourcepath instead of a folder under my project path, but then it still added a “Project Name/src” folder, which I couldn’t delete.
Next I tried adding source folders and I was confused even more. The dialog to add a new source folder only allowed me to add folders which were under my project path, even though I said in the previous screen that I wanted to specify my sourcepaths instead of using a subfolder under the project folder. I clicked Cancel and looked around the dialog for a different way to add sourcepaths, opened that same dialog a few more times, tried to re-create the project. None of it worked, so I tried clicking anything I could find that looked useful.
Then I clicked “Create New Folder,” in the add sourcepaths dialog, despite the fact that I didn’t want to create a new folder, I wanted to import an existing folder. It asked me for a folder name so I typed “source,” and I clicked the “Advanced” button. Another part of the window popped out which allowed me to “link” the folder to a folder on my hard disk. I linked it with my project’s sourcepaths, and hoped it would work. It did work, and now I could finish creating my project.
When I created the project, Eclipse asked me something like “This kind of project is associated with the java perspective. Do you want to switch to this perspective now?” I think this is a funny question for a few reasons. First of all, I don’t know what a Perspective in Eclipse is, so I have to trust that I want to use this thing. Second, I can’t imagine a situation where a user first installs Eclipse, creates his or her first project, and it’s a Java project, and he doesn’t want to work in a Java editing environment (if that’s what a perspective is; I’m assuming that).
Setting Up Eclipse
So, Eclipse opens the project, and I see a tree of my files and things like that. The “Welcome” screen I mentioned earlier is still there, but now it’s smaller to make room for my project files and the editor. I think it’s silly, I started my project already, I don’t need help anymore. I closed this tab.
Next, I opened the project properties and looked around those. Eclipse seems to have more ways to configure Java compilation, which seems sort of cool, except that it seems to allow you to write code that isn’t valid Java code (using enum as an identifier, for example).
I wanted to configure Eclipse’s settings, not just the project settings. I looked around a little and couldn’t find any way to get to them. Finally I went through every menu and found Preferences in the “Window” menu. I don’t know if the Eclipse developers realize this, but on Windows, the “Window” menu is traditionally used to do things like switch windows in an MDI/tabbed environment, as well as cascading MDI windows and enabling/disabling tool windows. I’ve never seen an application before which has its preferences menu item in the Window menu.
I looked through Eclipse’s configuration and found mostly the same kinds of things you can configure in IDEA. I found some specific settings for formatting comments, both Javadoc and non-Javadoc, which I think is a good idea, it’s something that IDEA doesn’t have. I found that in general, the code style / code formatting settings in Eclipse are more comprehensive than IDEA’s, though maybe not by much.
Something bothered me very much about Eclipse’s default settings: the default Javadoc tags for new methods and getters and setters. The default Javadoc for a getter method is:
@return Returns the ${bare_field_name}
This means that if you create a getter for “name” field, the Javadoc inserted is “@return Returns the name”.
First of all, the grammar used does not make sense. @return tags are traditionally written such that the “Returns” is implied; this should be re-worded to be “@return the ${bare_field_name}”.
Secondly, though, and most importantly, this generates an awful and useless Javadoc tag. If it were sufficient for a getter’s documentation to return “Returns the <field name<”, then Sun probably would’ve made such documentation automatically generated by Javadoc tool. However, it’s not sufficient. “Returns the name” doesn’t help someone trying to learn how to use a class. I don’t think Eclipse should be encouraging such sloppy documentation.
I think, however, that this feature epitomizes the Eclipse philosophy, in a similar way as the PHP documentation search engine’s matching algorithm epitomizes the PHP philosophy. Eclipse’s developers’ philosophy seems to be “I think that’s good enough, let’s work on something else.” In this way, Eclipse feels very much like a Microsoft product, although Microsoft would never have such an awful download process.
Conclusion (Already?)
So, after I got all of my settings set and my sources set up, and I added CVS folders to my exclude list (couldn’t Eclipse figure that out on its own?), I began to open the files I had to work on, and I saw a bunch of red X’s all over my project tree.
It turns out Eclipse can’t compile or edit Java 5 code yet. Java 5 has been in beta for almost a year; I don’t understand why this hasn’t been implemented yet; IDEA and CodeGuide had Java 5 support early in the beta. (Eclipse has a “1.5 compatibility mode” but it doesn’t actually work; it doesn’t support even basic things like static imports.)
So, I can’t use Eclipse. All of my current projects use Java 5 language features, and I’m not going to change them all back just so I can try out Eclipse.
Maybe I’ll release part 3 of this story when Eclipse supports Java 5.
November 15th, 2004 at 7:55 pm
Eclipse can and will automatically exclude CVS folders for projects, depending on how those projects come in :-) The problem is that Eclipse is completely plugin based. If the CVS code has never even run, then it’s not going to know about CVS metadata. So if you use the CVS perspective to pull in a project from CVS, then it will exclude metadata. Similarly, if you have the CVS perspective open when you try to import an existing project from your filesystem, then it will know what the metadata is and exclude it. In your case, I would wager that you did nothing CVS related with Eclipse (i.e. have the perspective open at least), so it didnt know the metadata was anything special. The simple solution is to close the project and reopen it… Not the most intuitive situation, I admit.
As for the rest of your comments, you seem to be going in there expecting ahead of time to not like Eclipse, and you certainly don’t seem to. So why don’t you just stop using it :-) Lot’s of people do like Eclipse, lot’s of people don’t. Nobody’s forcing you to use it, and it’s not like you had to pay for it.
Regards,
Colin
November 15th, 2004 at 8:01 pm
Hi!
I guess this (bad in your opinion) experience comes from a much too long time spent with your preferred IDE. Some weeks ago, having to work with a JDK1.5 project I had to switch for a while to IDEA. Even if I didn’t manage this very well (in fact I’ve found myself swearing for way too many times), I finally got it working. Not exactly how I like it (for example I didn’t manage to maintain more than one source folder under the same project root), however I didn’t go immediately to my blog to scream out that I had a bad experience with it. I’ve read the documentation and I have asked around for tips and tricks. I guess the main difference here is that I haven’t tried to be biased (and/or to get attention).
I think it is all about adaptive power. Maybe you should read something before installing, maybe you should ask something before blame it. Or maybe Eclipse is not meant for you.
regards
the_mindstorm
November 15th, 2004 at 11:08 pm
The vast majority of his comments are specific FACTS about usability guidelines that Eclipse does not follow. What compounds this is people claim Eclipse is more ‘native’ looking because of SWT, when in-fact it’s less native looking than any Swing IDE. Keith isn’t just saying “I don’t like it”, he’s giving specific reasons which Eclipse fanatics just won’t accept. Chances are he heard a lot of people say Eclipse is better than IDEA or Eclipse is great, so he tried it, and this is his experience. Keith makes excellent critiques which Eclipse developers and users should acknowledge and fix, instead of deny and refute.
November 16th, 2004 at 1:49 am
If you require Java 5 support, I would use the latest release, which is 3.1 M3. You can find the information on where to download it at my blog post: Eclipse 3.1 M3 is here!
I used to use IntelliJ IDEA before I switched to Eclipse and I found that it did take a little getting used to, because of the differences in philosophies. IDEA is built from the ground up to support Java and only Java. Eclipse is built from the ground up to support any development tool, with the Java Development Tools (JDT) being the biggest and most advanced. That’s why you switch to the Java Perspective when you create a Java project. Note that there is also a Java Browsing perspective which is more like the old VisualAge / Smalltalk browsers. If you’re looking to build any kind of development tool (or rich client application), Eclipse is the way to go because of the infrastructure it gives you.
Luis
November 17th, 2004 at 12:04 pm
Your experience pretty much mirrors mine. I’m sure people are productive and happy using Eclipse. I certainly didn’t have a good first impression. Or second. I did read the docs for several hours trying to grok the project management paradigm of Eclipse, but it didn’t mention the Workspace issue, so I had the same problem as you.
As I pointed out in my blog, Eclipse is definitely lacking in usability testing. I’m sure I could learn to use it, but it’s not easy and it won’t ever be as productive as an app which has taken usability into consideration (IMO). I agree with Luis that they were building a platform first, and putting a Java IDE into it. Problem is, I want a Java IDE first and foremost, and your platform is a nice little side benefit if I ever feel like building a desktop app… maybe… I’d say the priorities are wrong, for me at least.
Thanks for sharing your experience. Maybe if enough of us bitch they’ll take usability seriously and make a worthy (free) competitor for IDEA, but for now I’ll stick with my IDE and let the Eclipse people stick with their platform.
December 10th, 2004 at 9:59 am
I tried using IDEA after having been a seasoned Eclipse user of many years. I found the whole experience frustrating, contradictory, poorly explained and generally sub-standard.
Colleagues made the point it had so much more this, and way more that, and frankly was far far bettter.
However, i decided to stick to what i knew best since i hadnt the time to learn something new, and even less so the time to *whinge on some blog* about how i found IDEA below expectations when clearly that was down to my inexperience with the product generally.
I’m a snowboarder, and it took a lot of falls and painful experiences to get me where i am with my boarding. I always ask myself what do skiers see in the whole two-planks thing. Generally speaking, much as they might wonder what it would be like to blaze down a mountian on a snowboard, neither of us generally breaks away and goes through a second round of the pain-and-suffering cycle we had already endured when we have ample fun on the device we know best already.
Your moaning about myopic little facets of Eclipse which suits a whole legion of programmers eminently capably is an indication you simply have far to much time on your hands.
Do something useful, serious and worthwhile instead.
And stick to IDEA if you like it better.
December 10th, 2004 at 10:08 am
“The buttons said they linked to things like an overview and a tutorial…” - You skipped this whole part, and then complain that you didn’t understand the basic concepts. Personally Eclipse workspaces make a lot of sense, so do the source folders and perspectives. However, if you resist learning what even the basic nomenclature of a product, then I don’t think you have the right to bad mouth it like this.
December 10th, 2004 at 10:37 am
This was sure one whiny blog. I’d be the 1st to admit that Eclipse isn’t always the most intuitive tool but it is a very powerful tool so skipping the overview and tutorial was a foolish thing to do. Over the years prior to using Eclipse, I tried several different IDEs as they came out, never liked any of them. I was much happier using my ‘ol trusty Kedit text editor with the handy Rexx scripting languages to handle any code developement task. But after using Eclipse for a week, I was hooked. It has room for improvement, and it has been steadily improving, but it’s an extremely powerful and useful tool if you’d take a bit of time to learn it. Just like I’m sure you had to do to become proficient with IDEA.
BTW, there’s a reason why Eclipse looks like Win98/2000 rather than XP and it’s a java problem, not Eclipse. Look here to see how to fix this.
December 10th, 2004 at 10:53 am
Useful tools are not necessarily easy to learn — serious developers already know that — you apparently don’t. You’ll have to put in some effort if you want a return. Your comments throughout the article indicate that you want instant gratification from eclipse. Take this gem:
“First of all, I don’t know what a Perspective in Eclipse is, so I have to trust that I want to use this thing.”
Eclipse provides an excellent set of tutorials as well as extensive documentation about the workbench and its features, all neatly organized and accessible from the (surprise surprise…) “Help” menu. Apparently, you are either too lazy or unwilling to use the help system.
Some of your assumptions are farcical and indicative of the sloppiness of this review. After complaining about the quality of the auto-generated javadoc in eclipse, we have the following non-sequiter: “I don’t think Eclipse should be encouraging such sloppy documentation.”
the review is pathetic. a few of the items are actionable. the rest is just a waste of time to read. thanks for wasting my time.
December 11th, 2004 at 10:03 am
The first time I tried to download IDEA, it took me two hours. After finding the file on my computer which took me about 7 minutes, I tried to install it. It took about 110 minutes to install, all the while asking nasty questions which I did not know why I should answer. Anyway, after checking the IDEA website and Googling a while, I managed to install it. This can be said is part of the game with the IDEA; downloading and installing and answering questions during the install that is. But, the nastiest surprise came when I tried to run it for the first time; a nasty bug reared its head: IT ASKED FOR MONEY. Now, I am not an Eclips user or particularly a fan, but I have looked around an installed Eclipse IDE for a while, and I have found it quite useful. The interface is nice, and it does basic jobs very well, and some advanced jobs very well too. By the way, it never takes 20 minutes to unzip, unless you have antivirus software installed which checks every jar for viruses, and not to clutter the stupid registry of Windows with more keys and values is just the best idea that Eclipse has. The SWT is fast and it resembles to a very large extent the native interface of Windows, which is not very hot in the first place either. SWT can be a lot better though, which I understand is what the development team is trying to do. But Eclipse never, never, asked for money, the way IDEA did. I understand that JBuilder has the same bug too. So, why anyone should put itself at the mercy of those who produce buggy software? I uninstalled IDEA, which I am not going to trouble you with detailing the horrors of it, and went back to developing in C++, which is mostly what I do. I have to say that if IDEA people remove this bug, I am willing to give it another try, as I find some credible people call it a good IDE, after deciding to just live with this bug.
December 20th, 2004 at 8:31 am
“After finding the file on my computer which took me about 7 minutes”..
No miracle it took you two hours to install it…
December 22nd, 2004 at 6:17 pm
I find it funny that no one takes this as constructive criticism. I found this blog from a link in Keith’s profile in IntelliJ’s forums. There he posts these same types of criticism and is commonly thanked for his input. They treat these ‘complaints’ as possible usability bugs and use them as a basis for conversation.
The open source community just isn’t capable of that. The common response is ‘Fine! If you don’t like it, I’ll take my ball and go home!’ That’s why Linux will never be ready for the desktop. That’s why people still pay $600 for Photoshop rather than suffer though the Gimp. That’s why Eclipse will always be more flexible than user friendly.
Unlike Keith, I don’t care to offer constructive criticism. I’ve used both Idea and WSAD on a daily basis for a year and a half (WSAD because my job requires it, IDEA because they can’t pay me enough to use WSAD all day). There are many things WSAD can do that IDEA can’t, but everything IDEA *can* do, it does better than WSAD. It’s just a usability thing.
February 3rd, 2005 at 12:23 pm
I spent the last two days (parts of it) getting Eclipse to work the way I want an IDE to work. And Keith’s comment is very similar to mine except that I didn’t stop and I had a college who is actually using Eclipse.
Just to mention, I am using CodeGuide so far, but for money reasons I decided to giv Eclipse a shot. So I had quite some functionality and usability that I like to be covered from my IDE. The functionality doesn’t seem to be a problem, in fact my first impressions say that Eclipse has more functions than CG. I might just not find them. It took me long time to set up a project as I expected it to work (as showing CVS folders, Flat view instead of hierarchical, linking source and class folders, etc.) but I made it.
As of now, I think I can use Ecliipse and I may be as nearly productive as with CG (or even more?). It will take some more time setting Keybindings and so to my will, but this is doable. As e.g. I could not figure out how to change the background color in the editor window … ?!?
And most of the menus seem not to be in the right place (like Preferences in Window instead Edit, Organize Imports in Source instead Refactor, ….). Still a lot to do….
February 10th, 2005 at 3:54 am
If you are not able to use Eclipse then just leave it.
February 16th, 2005 at 9:38 am
@SG: Thanks for this very productive comment. Exactly what I have expected here :(