This is something that has bothered me for a long time. Many people I know like and love IntelliJ IDEA, but every time I try it I loathe the experience. I think the editor is stupid as it makes *me* think whether I have to override, implement or generate a method by enforcing different keybindings for those actions. I just want to press ?-space and select the appropriate action from there (using autocomplete). Eclipse gets this. Smart autocomplete in my book is to have ?-space work for all use cases: did I already type get? Then probably you want to generate a getter for a property. Did I not type anything? Then I probably want to implement (or override) a method.

Smart autocomplete in IntelliJ is anything other than smart. More often than not it presents me with an empty popup. IntelliJ wants me to press ????-space or ?????, which breaks my fingers. I have to remember which magic combination of ???? with enter or space invokes the thing I don't want to have to think about: implement an abstract method or override a super method? I already know thy name, don't make me think about the implementation detail of implementing or overriding!

IntelliJ has a user interface that makes me do work for the computer instead of making the computer do work for me: having to instruct the compiler to do its work after saving a Java file, organize imports on save, etc. I know you can record macros, but then everybody has different actions configured. Note that I typically work in a team with 5 to 15 people committing to the same code base. Having the exact same actions that are executed consistently on save is a life saver.

There is one thing that I really don't understand of IntelliJ: it doesn't make migration from Eclipse users streamlined. Yes, they provide keybindings for Eclipse users, but those only work for Windows users–not OS X users. They don't provide a working importer for Eclipse formatter rules. So when someone uses IntelliJ in an Eclipse environment the formatting is not consistent. I have used the Eclipse formatter plugin but that doesn't make working in IntelliJ more fun.

To sum up: even though I frequently throw a fit when Eclipse stops behaving correctly, I still consider it to be the best IDE for Java coding. It is unfortunate that m2e (the Maven integration into Eclipse) makes Eclipse bog down to barely useful. But that is material for another rant on another day.