I've been a zone leader with DZone since 2008, and I'm crazy about community. Every day I get to work with the best that JavaScript, HTML5, Android and iOS has to offer, creating apps that truly make at difference, as principal front-end architect at Avego. James is a DZone Zone Leader and has posted 638 posts at DZone. You can read more from them at their website. View Full User Profile

Five Features That Make Eclipse My IDE of Choice

12.16.2009
| 16773 views |
  • submit to reddit

Like a lot of developers out there, Eclipse is at the core of all my development activities. It's been that way for me for years. In this article, I'm going to list the five killer features/plug-ins that I use daily within Eclipse that make me very reluctant to move to another development environment.

Mylyn 

I have to admit that I was a bit late to the Mylyn party, but only because there was no connector available to connect to the company bug repository. Thankfully, I tracked one down (see QCMylyn), and since then I haven't looked back. 

The advantages of Mylyn are quite well known, but it isn't until you start to use Mylyn that you really see the benefits. I no longer need to keep a browser open on the side to see what bugs and tasks are assigned to me- I get them in the task list view. And then, when a new bug/task is assigned to me I get a system tray notification - no need to check my email for new issues. 

And that's just the beginning - the task focussed UI is a brilliant way of keeping track of what files are related to your current task. Sure, it took a bit of getting used to, but once you do, it becomes second nature. Finally, I can use Mylyn to keep track of my own to-do list by using the local repository to store my own tasks. 

Software Updates

It tends to get more than it's fair share of bad press, but for me, p2,  the software update mechanism is essential.

Being able to simply add in an update site, and get the latest version of a framework or plug-in makes the developers life really easy. No need to worry about dependencies, or unzipping a plug-in download to the plugins folder. Everything is managed for you through this simple dialog. 

Enterprise Java Tooling

It's a broad topic, but Eclipse has some of the best tooling available for JEE projects. It's not my usual type of development, but recently I needed to get setup to developer on an enterprise project. While I could have updated my current Eclipse instance, I just downloaded the complete Eclipse IDE for JavaEE bundle to have a dedicated Eclipse installation for my web based work. 

The amount of functionality available here is outstanding - from wizards for Web Service creation, excellent JSF and JPA tooling, to  XML editing.

It's a simple feature but I really like the servers view that allows you to control and deploy to your server of choice. If your server isn't listed as one of the available to deploy to you will typically be able to find a plug-in to support your server. 

 

The recognition of Eclipse for enterprise Java development is prevalent across the industry. The recent GlassFish v3 release included a GlassFish Bundle for Eclipse, while the SpringSource Tool Suite makes full use of Eclipse and Mylyn to deliver quality tooling for Spring developers.

Model Driven Development

The Eclipse Modelling Project provides a nice set of modelling tools for those using EMF and related modelling technologies. The Ecore Tools available to work with EMF models allow you to create and modify your ecore through a standard tree, or using the visual Ecore diagram editor (see below)

 

Of course, you'll need to be using EMF to benefit from these tools, but the tools themselves provide a compelling reason to use EMF for your modelling. Rather than having a UML diagram, seperate to your source code, to represent your model you can have synchronisation between design and implementation using these tools. 

The Smaller Features

Along with the four features I've listed above there are many other small features that together really help to make a developer's life easy in Eclipse.

For example, this post explains how you can force a format of your source code every time you save - essential if you want to ensure that you're following source formatting guidelines. 

Perspectives are another essential. Being able to switch the context from Plug-in Development, JEE, Debugging or a perspective of your own creation really helps to keep things clear. 

JUnit integration is another big win - I know it's not exclusive to Eclipse, but it's a nice view and gives good visibility into your testing tasks. 

You'll find many plug-ins to help you along at the new Eclipse Marketplace (formerly known as EPIC). If you need plug-ins for checking code style, static analysis or connecting to your version control system, you're sure to find it here.

 

No doubt I've missed something the makes Eclipse essential to you, so please feel free to share your own favourite features here.

Comments

Andrew McVeigh replied on Wed, 2009/12/16 - 9:18am

my favourite eclipse feature by far is compile on save.  I just can't get by without it, and I find if I use IntelliJ or some other tool that doesn't have this then I don't like it.  The only other Java IDE I've seen with this feature is Omnicore Codeguide and I think that's dead now.  There are supposed to be plugins to enable a variant of this in IntelliJ and Netbeans, but I've never got these to work.

i have recently started using VisuaStudio for my work, and thankfully resharper adds the solution-wide analysis that effectively mimics compile on save.  It's not perfect, but it's good enough.

 

Dror Bereznitsky replied on Wed, 2009/12/16 - 10:44am

Five reasons why Eclipse is not my favourite IDE:

  1. The "build, automatically"  feature is by far the most annoying feature this IDEA have. When working on large scale projects with multiple module, you get Eclipse to rebuild on every little change you make. And if you want to stop the build you can close Eclipse, but this little window stays showing you the build progress going nowhere.
  2. The fact that eclipse does not have the notion of modules but rather treat each module as a seperate project makes it hard to deal with modularized projects
  3. while the software updates is a truely nice feature, I usually find myself distressed after installing anew plugin which start complaining that it needs EMF 2.4.0v208430403403 while I have EMF  2.4.0v208408094509 which makes another plugin stop working and so on
  4. Having to see all projects in my workspace and having to define filters and working sets to avoid this
  5. RAD - its not really Eclipse's fault but I really hate it

James Sugrue replied on Wed, 2009/12/16 - 10:51am in response to: Dror Bereznitsky

It's good to see the other point of view too, and we'll definitely even up the coverage by doing a similar piece on NetBeans.

I can see your point on 1, but you can switch off the the automatic build from the project menu.

Out of curiosity, do you still use Eclipse as your IDE, or have the points you listed above made you change to another IDE?

 

James Sugrue replied on Wed, 2009/12/16 - 10:52am in response to: Andrew McVeigh

Compile on save is great - it's a feature I take for granted actually.

 

Gabor Farkas replied on Wed, 2009/12/16 - 11:35am in response to: Dror Bereznitsky

1.

"you get Eclipse to rebuild on every little change you make."

I really have to argue with this. I'm using the eclipse automatic compiliing on really large projects. We actually even put the classes compiled by eclipse to the production environment. There are some points when eclipse really does rebuild entire projects - e.g. when a library dependency changes. But on the other hand, you get really good code assistance in return. Anway, when you are just editing the code, it compiles the smallest subset  of classes needed. I really don't find it slow.

3. EMF was really a mess some years ago. And I'm not trying to use it since then ...

4. Actually this is feature :) but really. I use several workspaces - usually one workspace per "software project" - and we use "eclipse project" for what you call modules. I use working sets to separate some testing and piloting stuff from the real modules.

Toni Epple replied on Wed, 2009/12/16 - 12:07pm

 As a long time NetBeans user and occasional user of Eclipse I can agree to point 4 in your list, MDA really is cool in Eclipse and a free and good plugin for that is missing in NetBeans.

Mylin is cool as well, but it's not unique. With Cubeon there's an extremely well integrated Task oriented interface for NetBeans as well. For the other 3 topics it probably depends a lot of what you're used to.

An Update Center probably wouldn't end up on my personal list of Killer features anyway, but I wonder how the Eclipse one would be superior to others, like e.g. the one in NetBeans, except for the fact that it's better hidden in Eclipse ;-). The one in NetBeans just works, the one in Eclipse as well, that's what I'd expect.

Regarding the smaller features what I don't like about Eclipse is Maven & subversion support. Both are really way behind in Eclipse. I'm working in a project right now where the standard IDE is Eclipse. I started to work on it with Eclipse but ended up doing so much on the commandline or with external tools for both maven and subversion tasks. I switched back to NetBeans very soon and never had to leave the IDE for this since. 

Also I wouldn't agree that Enterprise support is better in Eclipse. And especially if Web Development is not your usual type of development NetBeans definitely has the better out-of-the-box experience, since it contains everything you need. Install the IDE and simply start coding and enjoy the deploy on save to the embedded glassfish. No need to install a plugin or a server.

 

 

Andrew Arrigoni replied on Wed, 2009/12/16 - 12:26pm

I've been making the switch from NetBeans to Eclipse. There is just a lot more support out there for Eclipse with the stack that I use.

I've found Eclipse to be a lot buggier by comparison. I'm 90% sure this just me not knowing it as well but it does weird things a lot of times. I've also gotten accustomed to a lot of the NetBeans bindings (tab expansion of templates being a big one), so I'm still muddling through that.

I'm also a little afraid for the future of NetBeans. With the Oracle/Sun thing going on, what will happen to NetBeans and IntelliJ? IntelliJ just released an open source version, right? TBH, I'm already productive with NetBeans and I know that soon there will be great tooling support for NetBeans for the full J2EE6 stack. Yet, there're still a couple of holes for me to move to the J2EE6.

Wal Rus replied on Wed, 2009/12/16 - 1:17pm

The only problem I have with eclipse is its sudo OSS / Free status. We all think that it comes for free, but if you examine closer it really does not. It gets paid for by the corporations who use IBM's RAD. A RAD license costs hundreds if not thousands of dollars every year. It's nice that we still have competition JetBrains, NetBeans and so on, but consider what happens when the competition dies off (imaginary case). We will all be stuck with Eclipse of the moon cult. Ugh... Why did they have to name it Eclipse, didn't the history of religion show well enough that downturn in the society started with the moon cults? Go Go SUN! :)

Andy Gibson replied on Wed, 2009/12/16 - 2:20pm

I find that there is no easy winner when comparing Netbeans and Eclipse. I still find Netbeans to be slow and inaccurate in things like auto completion (especially for HTML/ XML), but at least I can edit those documents in Netbeans unlike Eclipse which doesn't provide any help for editing XHTML (it's only been a defacto and now current standard for JSF for a few years) without renaming files. Netbeans is up to date for the Enterprise with Java EE 6 support (including EE maven support) and Netbeans has good maven and groovy support. It also has 2 way UML plugins for MDA development, online updating and module installation which is better I find than the fine grained Eclipse version. Eclipse is fairly useless until you start adding plugins and you need to add them for everything like subversion, maven, or issue tracking software integration. Netbeans does come with a fairly large set of features by default (I know, some people dislike that and would call it useless bloat).

However, I find Eclipse has much better performance as I use it, auto completes come up quicker and are more useful. I can't get custom DTDs to pop up for things like docbook documents even if I add them to Netbeans. I find the Netbeans keyboard shortcuts to be horrible such as not using the standard ctrl+space to bring auto-completion, or pressing Alt+F and then C closes the project instead of the currently active document. Plus, JBoss Tools for eclipse is a great JSF editor and Seam IDE in Eclipse.

 I think Netbeans probably wins on the bigger features (I don't know about Mylyn), partially because it is all much easier to install and get working together without having to worry about missing plugins. Eclipse wins on performance and getting the basics more correct but not perfect.

Like many choices in Java, it's a matter choosing the least offensive.

Loren Kratzke replied on Wed, 2009/12/16 - 2:32pm in response to: Andrew McVeigh

Compile on Save: This comes with Netbeans right out of the box. Project > Properties > Build > Compile

  • For both application and test execution
  • For application execution only
  • For test execution only
  • Disable

Andy Gibson replied on Wed, 2009/12/16 - 2:42pm

BTW, as a side note, is it me or does that link to the Eclipse Modelling Project send you to pages filled with techno babble? Most people looking for modelling stuff just want to go install the visual modelling editor and model entities. Instead, they are subject to statements like :

 "The Eclipse Modeling Project focuses on (...) model-based development technologies (...) by providing a unified set of modeling frameworks, tooling, and standards implementations."

 Where is the screenshot like the one in the original post showing fancy diagrams  and a big link saying "Download Now".

I had no idea that the modelling piece was called ECore until I re-read the original post. Instead, when I go to the download page for the "Eclipse Modelling Tools" it is described as

"This modeling package contains a collection of (..) components, including EMF, GMF, MDT XSD/OCL/UML2, M2M, M2T, and EMFT elements"

 Umm, still no mention of the magic words, visual model editor. Granted, EMT is probably a bigger library than just the editor, but Netbeans has a whole big visual library that you can use (maven dependencies and uml diagramming are two uses that come to mind) but I can still go into netbeans, go to Tools->Plugins, click the available plugins tab, select UML Modelling and install it (well, I could do but not under 6.8!)

 

Josh Marotti replied on Wed, 2009/12/16 - 5:52pm

What your list is missing:

 Killer plugins (findbugs, eclemma, etc...)


But the biggest??

 The REFACTOR menu!  If you master and use the refactor menu (or shortcuts) to their full potential, coding in Eclipse is a DREAM!

Sura Sos replied on Wed, 2009/12/16 - 8:36pm in response to: Gabor Farkas

+1 I also work with very large project, I have never experienced problem with automatic compilation slowing down the ide. It might be because of some weird configuration or slower machine.

Andrew McVeigh replied on Thu, 2009/12/17 - 5:05am in response to: Loren Kratzke

Compile on Save: This comes with Netbeans right out of the bo

Thanks for the tip.  I'll definitely check it out.

Oh, 2 more things I love about eclipse.

1. compile around errors -- i.e. if you have a class with 5 methods and 1 is causing a compile error, you'll still be able to call the 4 other methods and still run your program.  Great for teams when a junior dev breaks the build.

2. no install.  just unzip and go...

 

Andrew McVeigh replied on Thu, 2009/12/17 - 5:49am in response to: Andrew McVeigh

Compile on Save: This comes with Netbeans right out of the bo

Thanks for the tip.  I'll definitely check it out.

Oh, 2 more things I love about eclipse.

1. compile around errors -- i.e. if you have a class with 5 methods and 1 is causing a compile error, you'll still be able to call the 4 other methods and still run your program.  Great for teams when a junior dev breaks the build.

Whoah, netbeans has compile on save and compile around error support.  Awesome.  I just tried it, and I like it!  It's got pretty much everything I need for what I do, and inbuilt mercurial support.  Holy cow -- it's moved about 2 levels up since I last looked at it.

how long has this been standard?  I tried a release earlier this year with the intention of trying the support for compile on save, and it didn't seem to work.  Is it recent?

 

Tom Wheeler replied on Thu, 2009/12/17 - 12:47pm in response to: Andrew McVeigh

I know this is a post about Eclipse, but I'll just add that NetBeans is available as a ZIP file too.  Just go to the download page and then click the link for "also available in ZIP file format" at the bottom of the page.  Just unzip and go, just like Eclipse.  The downside to this is that the installer uses Pack200 and the ZIP file version (naturally) uses ZIP compression so it takes longer to download because ZIP is less efficient.

Although I use NetBeans 95% of the time now and generally prefer it to Eclipse, I still think Eclipse is a pretty good IDE and there's a lot to like about it.  One place where it still outshines NetBeans is the number of refactorings it supports.

I'm happy we live in a world where there are three major open source IDEs (Eclipse, IDEA and NetBeans) because the competition has made them all better.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.