So I’ve been using Eclipse 3.3 Europa to work on OSX and Windows using Google Code as the SVN provider. Details about the project later but for now just a few thoughts on the new release:
- Cut and Pasting code also results in the imports being added to the destination class.
- Refactoring is all done inline in the class editor, there’s no separate dialog unless the refactor runs into trouble
- Drag and drop in the editor works (hallelujah!)
- Sensible packaging strategy that seems to contain everything you need for Java development (except SVN, Subversive or Subclipse should definitely be part of the standard bundle)
- Seems to be perfectly cross-platform (Eclipse 3.2 was a bit weird on Vista and I never really liked it on OSX)
- Ant 1.7!
Pains in the ass…
- It’s still a little more than flaky in its threading, auto-completion has this weird glitch where it hangs, tells you its waited too long and then when you acknowledge that dialog it actually shows you the completions. This one seems confined to Windows.
- On OSX the JUnit Test Runner seems to start up as it’s own application. I can’t figure out what set of circumstances makes it happen (initially I thought I had clicked an option or used a weird key combo but does not seem so likely). I also had the Class Loader get in a total mess when running the Unit Tests but the two may be linked.
- No way to quickly adjust the font size in the editor. I’ve got a big screen and that’s great for the big picture but sometimes I want to enlarge code I’m working on so I don’t have to have use ninja precision with the mouse.
Outside of these there are some grey areas, the spell checker is a good idea and god knows there are enough programmers who need it. However it is not a tremendous value add and when it goes wrong it is a memory and processor monster. At work on Vista it decided that an XML file was a text file that was entirely invalid grinding the whole machine to a halt. What I would have liked instead is a bundled Servlet Engine like Tomcat on NetBeans. I’m sure there is some plugin that will provide this but I think it should be a part of the bundle (like SVN support).
Overall though Europa is still a bit of a “is that it?” experience. I recognise that there has been a significant amount of effort and everything looks really polished now but sometimes the new features make me thing “why was I putting up with that in the first place?”. Why didn’ t drag and drop work in the Java editors? If I was doing Java Enterprise why did I have to round up and install my own plugins? Why wasn’t the Ant Plugin for Eclipse 3.2 updated as a minor release?
The Europa developers have done a great job and there is no way I would stick with Eclipse 3.2, but there’s nothing so far that blows me away here.
So, what about the big question that always brings readers to the blog? NetBeans 5.5.1 or Eclipse 3.3? Well 3.3 does make some of NetBeans features look distinctly archaic: Ant 1.7 and JUnit 4 are big pluses. However its about having the right tool for the right job. I always say that if I have a gnarly old codebase then I trust Eclipse to make sense of it and get it working and get me working on it. However for Swing and Web Apps development I think nothing has really changed. You can set up a web app, framework and be experimenting in twenty minutes with NetBeans and Matisse is pretty unparalleled at the moment. With 3.3 I feel the Eclipse team have definitely done the right thing and made J2EE work a much more pleasant experience, however that was more about making up ground on NetBeans. From here on I think they need to think about how Eclipse can make other types of development easier. Personally I do think that is about bundling things like Tomcat and JavaDB into the IDE so that I can setup a configuration that includes my test databases, my test webserver and anything else I need to get my app up and running so that I am working on my code rather than my infrastructure.
Still no criticism can detract from a job well done by the Eclipse team. I just want them to do it again; and more often.