I know all about developers and their favorite tools, about these tools’ hotkeys being in the muscle memory, but I have to try this, especially after the latest Eclipse+Maven escapade.
Eclipse users, please consider trying out an alternative, just so you have something to compare Eclipse to. Try IntelliJ for a week or so, you can still go back to Eclipse after that and keep using it for years to come.
One of the biggest problems with Eclipse is that it’s trying to be smart and do things it’s own way, it uses it’s own compiler (called “eclipsec”, yes it doesn’t use javac internally, did you know that?), it builds the project automatically and reports errors, this might seem convenient at first but in reality all this is done entirely different from how the build server compiles the code and also from how Joel builds the releases at the end of the day.
The Maven integration in Eclipse is notoriously bad and has been like this for over a decade, the Eclipse platform itself is built on OSGi which is a very different way of managing dependencies, and the Eclipse people don’t have much incentive to get Maven to run smoothly.
IntelliJ on the other hand uses the regular javac, it doesn’t automatically build the project, it doesn’t even have a dedicated “problems” view that is automatically filled with “problems”. It can build the project on request and will report problems in the build log. Overall it is much closer to what happens later on on the CI server and during the release build.
The performance of IntelliJ is better due to this “Eclipse being smart” thing, IntelliJ doesn’t try to be smart and due to that doesn’t need as many resources, it only wants to be a good code editor, while leaving the build to the regular tools like maven and javac.
One other problem with Eclipse is that it is essentially a platform for developing desktop applications, and the “Eclipse Java IDE” is an application on top of that platform, every time you run it you run the platform plus the application, which is more expensive resource-wise than running the “pure” application that IntelliJ is.