Although IntelliJ IDEA is a very nice IDE, I hate several things about it, especially comparing to Eclipse.
Horrible font rendering
Not IDEA’s fault, but its font rendering in Linux is horrible. Everyone who recommends IDEA seriously was Mac user, and that might mean something is wrong with Swing. Fortunately, I found a workaround.
The default keymap is not easy to learn & remember. How can I know if Ctrl+F9 means ‘Make project’ and Shift+F6 means ‘Rename’? Ctrl+B and Alt+Shift+R of Eclipse are much easier to remember. I know we can’t do it that way for all shortcuts, but at least we should do the best. Some old IDEs had the similar keymap with IDEA, and in my opinion IDEA looks like it simply followed some bad tradition.
Unstylish color scheme
The default color scheme (i.e. syntax coloring) looks so 80-ish. It makes me feel like working with a very old IDE such as Visual Studio 6.0. Most modern text editors like TextMate and Sublime Text have much more lovely out-of-the-box color schemes.
Personally, I prefer the color scheme of Eclipse, and use the same color scheme in IDEA. If you like Eclipse style, download it here.
No ‘build on save’
There is a plugin called ‘Eclipse Mode’ that emulates this behavior, but it is not in the same league with the native incremental compilation engine that Eclipse ships with, and it doesn’t seem to work with the latest IDEA version.
No way to browse the complete list of errors and warnings of a project
Eclipse has a view called ‘Problems’ which shows all errors, warnings, TODO tags of the project (or the scope you prefer). In combination with the ‘build on save’, the Problems view updates the list of problems almost in real time. In contrast, I have to build the project manually to get or update the list of warnings and errors.
No quick documentation lookup on hover
I have to type CTRL+Q to look up the Javadoc of a class on the current cursor position. Why can’t I simply view the Javadoc by moving my mouse cursor on it instead of moving the text cursor? It does seem like some people doesn’t care about this lack of feature, but without this feature I have to move the text cursor back and forth in the middle of coding session instead of briefly moving the mouse cursor while retaining the current text cursor position.
Also, did you know most applications define CTRL+Q as a shortcut for ‘Quit’?