The final release of Eclipse Galileo has arrived.
I'm a heavy Eclipse user so, it's time to upgrade and put it through its paces.
I'm using the version for Java EE developers on Kubuntu 9.04
because all real developers use Linux :-)
I should first qualify my review. I am a big fan of Eclipse, I've been using it for years so, I'm pretty familiar with most of the quirks, shortcuts, and capabilities. OTOH, I tend to be fairly ruthless when giving a review. Note, last year's review of Eclipse Ganymede.
My current projects use Maven, Spring, and Tomcat. I have projects in both CVS and Subversion so team integration is a big deal.
The first thing I decided to do was create a new workspace (just in case). Next, I needed to install a few plugins to get to work.
Like all new Eclipse versions, the splash screen is slightly tweaked (and better looking). I didn't bother with the welcome screen. However, I must admit the changes to the welcome screen are spectacular. The labels by the icons help a lot.
The dialog is much much faster than before. The parts of the dialog are a heck of a lot more logical too. This is a welcome improvement. I noticed the whole plugin mamangement seemed to be on the decline through previous releases. The Galileo release is really turning it around.
Only complaints so far, a restart is still required after installing plugins (how very un-OSGi-like, you know who I'm talking too ;-) ). The m2eclipse plugin hangs on importing a project, the "cancel" button is useless (like it is in every version of eclipse). I had to kill Galileo from the command line.
I supposed the blame gets split. M2Eclipse for not being ready for Eclipse 3.5, and Galileo for failing to stop the plugin with the cancel button.
Removing plugins is a bit un-intuitive. Select the Help menu option. Then, Install New Software. Toward the bottom-right of the dialog, find a hyperlink, "What is already installed?". This will give you another dialog with a list of the installed plugins (note the tabs at the top). Though harder to find, the dialog is better than previous versions.
Moving on to Java
First up, it looks like the package explorer is broken. Packages and classes show up for some projects but, not others. In my first test, two projects are sibling Maven projects, one's packages show, the other's do not. All other project resources do show up. This will be the deal breaker for me, I can't use Eclipse effectively without the package explorer.
I didn't notice anything new in (my favorite area) the refactoring options.
The "Open Resource" dialog (ctrl+shift+r) finally ignores "class" files when I'm typing a class name. This will definitely be an improvement for productivity.
The auto-complete appears to be smarter. When I type List and hit control space, the first option is java.util.List instead of java.awt.List (as in previous versions). Seriously, who use awt.List more than util.List anyway? Typing SB and control space still shows StringBuffer before StringBuilder so, all isn't perfect.
It also appears the weird sun..* classes are being filtered out of auto-complete as well. Those were always an annoyance.
I'm not sure if this is a new feature but, I just noticed. In the "source" menu (alt+shift+S) there is an option to "Generate Constructor from Fields". This is great when defining a handful of final fields in a class. The setter-constructor always seemed like something to be automated. now, if this were an option in the ctrl+1 auto-fix...
There are also options to generate equals(), hashCode(), and toString() methods. Again, I can't remember if those were in the previous version but, definitely useful.
There is an option to "Generate Delegate Methods" in the source menu. This is awesome when creating a wrapper class as the majority of methods will be simple delegates. A couple of keystrokes can generate all of the boilerplate code. schweeeet!
The previous version of Eclipse, Equinox, was getting downright sluggish. Auto-complete, auto-suggest, etc, just took a while to respond. So far, in Galileo, it appears to be improved; nothing drastic but, it is better.
I still yearn for the snappiness of the Eclipse 2.x days.
The editor (looks like all editors) now supports block-select mode. It's not often I need this but, when I do, it is very useful. Activate with: alt + shift + A the keyboard shortcut toggles the mode, a kinda weird way to do it but, I'm happy enough.
Working on the Server
Ok, got the project up the old fashioned way. Project Selected, alt+shift+X, R does nothing. arrrgggg! Right Click, Run as -> Run on Server. Set-up Tomcat and the app is running on the server. Shut everything down, try again. The keyboard shortcut now works. weird...
Profiling is not installed for the servers by default, though you do get a non-functioning "Profile on Server" button. Google informs me that I need the TPTP (profiling) pluign installed. So, I do that, start the server in profiling mode, it switches to the "profiling and Logging" perspective. and then hangs indefinitely with the message "Linking Viewer Selection with Current Editor". I have no idea what that means.
Again, Eclipse can't shut down, of course, it ignores the cancel button. I have to kill the process.
Amazingly, after the restart, the package explorer is now working normally. I was just about to give up.
Galileo does appears to startup quite a bit faster. Synchronization with the file system also appears to be improved. The overall stability of the platform appears to be better as well.
Little Things That Mean a Lot
The keyboard shortcut to "run as" (alt+shift+X, option) is much more responsive. This is exceptionally useful during TDD. The shortcut to rename a method or class (alt+shift+R) doesn't require me to select the whole name, I simply need the cursor somewhere in the name, nice.
The built-in runner for jUnit appears to work much better (and reliably) with jUnit4.X. This definitely qualifies for bonus points.
I usually set-up keyboard shortcuts for updating and commiting code. I'm a firm believer in frequent commits. One issue with Eclipse (not just Galileo) is commits (and updates) are treated differently for each SCM. This means if a have a project from CVS and a project from Subversion, I can't assign the same shortcut alt+U to update for both projects. If you do, Eclipse just goes spastic for a minute or so. Rather than assign 2 different shortcuts, I just assign it for Subversion and handle CVS projects the old fashioned way.
Wish List (or me just being nit-picky)
I tend to have separate source directories for tests and regular source code. I'd love for Eclipse to default to the correct place when creating a class or test case. There may be a configuration option for it. But, for the life of me, I haven't figured that one out.
Overall, there appears to be little difference between this release of Eclipse and the previous. The better plugin management, more responsive UI, and smarter auto-complete definitely make for better productivity and usability. There is quite a bit of random quirkiness that can hurt usability, hopefully most of that will get worked out as updates start rolling out.
I really wish more effort was placed on quality control before rolling this release out. Consistent behavior would have definitely made for a better experience.
I was seriously considering abandoning the test when the package explorer wasn't working. I'm going to assume it was a random quirk for now, since it did start working.
So far, I think Galileo is the best 3.X release of Eclipse but, time will ultimately be the judge. I'll be using Galileo exclusively and make updates to this review as usage continues.
- Auto-comlete presents smarter options
- The plugin installer is much better
- Most of the UI is faster and more responsive
- The Open Resource dialog has improved
- Never Crashed
- Tools for managing plugins are better
- The profiler hangs (unusable)
- Eclipse can't close if waiting for a plugin to finish (can't cancel either)
- Lot's of random quirkiness, things stop and start working without apparent reason
- Quality Control is in obvious decline in the Eclipse project overall
- Actually finding the tools to manage plugins can be a challenge
Eclipse.org has a big list of reviews.
Open for comments on DZone