After ten years or so working with eclipse I moved to intellij's idea as my primary IDE. The reason for that is that my new team is working with intellij (on Mac!).
I'v decided to take the long way and use it "as god created it" -- not with eclipse keymap so it will be easy to collaborate with other guys and learn from their experience. In addition, I guess there is some kind of logic for the keymap of shortcuts. Still trying to figure that out.
Definitely the main difference is the keyboard shortcuts. To help me get thru that I created shorty, a small utility that on focus,click the shortcut from eclipse, and the intellij equivalent is displayed.
Another big difference is the (lack of) save button. I am so used to that in eclipse so ctrl+shift+s is like a second nature for me. But that was relatively easy to get used to because I am using webstorm for a while.
Still, sometime it is annoying. For example when using 'gulp watch', you have to step out of intellij and return in order for the modified files to get noticed for changes. same for save actions and infintest.
I added a list for the rest of the things, please let me know if you find any mistake or I am not using it correctly, so I can learn from it:
- ctrl + j (find as you type) - I think there is a plugin for that, but didn't try that.
- duplicating lines and moving them around is much more convenient with eclipse's ctrl + alt + arrow up/down, then leaving the alt to continue the move. intellij has ctrl + d, and I dont like the fact that it is not duplicating full lines on selection.
- problems view (compilation errors): I am used to see it on the fly so it feels like with intellij I don't see the big picture, rather bump into errors in the build. Speaking of that, intellij is not working so good with compilation errors when trying to run. I tried to configure that but the errors still disturb execution even if its not related to the executed code. I am trying to run unit tests of a class and intellij is shouting about something in completely different area of the code.
- show the console on new output - why do they don't have that feature?
- debug java code seems better in eclipse:
- drop to frame is missing so much.
- the smart step into is not as convenient as the ctrl+alt+mouse left click shortcut.
- compiler hot swap is not in the level of eclipse.
- svn support:
- I cant make the history view sync with editor file.
- synchronize view was very convenient.
- on the other hand I like intellij annotate, change-sets, and shelve support.
- organize imports - it's just better in eclipse.
But there are still a couple of things I like about intellij's idea, maybe the biggest one is the plugins and language support. It is much more mature. You can actually expect a plugin to work. One such an example is subversion support that is "out of the box" unlike subclipse... but there are more. big plus!
And final words about performance & quality. In that case I suffered with both ide's. with large projects they have bottlenecks and doesn't work smooth. I wish it wasn't like that.