I like Eclipse a lot. As many of you know, I’ve developed business software for just as long as I’ve been doing graphics software (and learned a lot from both worlds), and through that I’ve used Eclipse in various forms over a number of years - it’s really quite incredible how far it’s come in that time. If you discount the language dimension (Visual Studio is still my preferred C++ development environment) Eclipse is easily my favourite IDE to use - although in practice you have to be a Java developer to really get the best out of it. There’s just so many things to love about it, like:
- Powerful in-built refactoring tools - including ‘refactoring scripts’ that can be deployed with your new library versions to help clients of your library upgrade
- Quickly resolve most errors and warnings with just ‘CTRL-1’ (and in the latest version, the ability to automatically derive missing generics parameters got me smiling),
- User-defineable ‘perspectives’ which let you switch easily between window layouts, each with a different emphasis (dev, test, debugging, database, web configuration, team updates, bugs / tasks etc)
- Integration with Bugzilla and Trac for task / bug reporting
- Background compiling that gives you instant feedback on errors and warnings
- Probably the best SCC feature set I’ve seen in an IDE, including 3-way merge, easy previewing of repository updates you’re not currently in sync with without updating, and even a ‘local history’ system that lets you roll back individual uncommitted changes that haven’t touched the repository yet, down to the granularity of individual saves.
And that’s just some of what comes with it out of the box. Beyond that, perhaps the best feature of Eclipse is the plugin architecture, which allows plugins to be really nicely integrated into any aspect of the tool, including being able to point Eclipse at remote plugin sites for easy installation and updating, and the core documentation being extensible such that looking up plugin documentation is all pretty seamless after the install. The sheer number and variety of plugins available is probably what keeps it ahead of NetBeans (and makes Visual Studio’s plugin system look quite limited and weak), which has started making up the ground a little in recent years. I’ve been tinkering with Java development again in the last month for a side-project and so revisited the Eclipse landscape again, here are my current picks:
- Subclipse: A no-brainer, provides the interface from Eclipse’s team synchronization views etc to Subversion repositories
- eUML2 : UML modelling tool with round-trip integration, is commercial but free edition is ok for commercial use and is highly functional
- Azzuri Clay : Database modelling plugin with reverse engineering
- SQLExplorer : An improved database perspective view, easier to use and richer than the default ‘Database Development’ perspective that comes with Eclipse
There are others that are useful depending on the kind of application you’re working on, such as tools specific to your application server, helpers for libraries, reporting tools, UI designers etc, but this set I find useful for most projects. And best of all, you get the whole lot for absolutely no money down - that’s really quite incredible value given the quality on offer here. Anyone else got any favourites?