Hacker News new | ask | show | jobs
by aedron 2370 days ago
There are, despite the often very aggressive IntelliJ proponents, many areas where Eclipse beats IntelliJ, and incremental compilation is indeed one of the most important. It is also possibly the most important feature in a Java IDE. Ctrl+s and you know the whole codebase is compiled. Go to another file and any code change is available in the code completion (like new or changed methods signatures). Any errors from the change you just saved is shown immediately from across the entire codebase.

I just can't live without a core thing like this missing, and compounded with a number of other things that Eclipse does better, I stay on Eclipse. Unfortunately many younger developers think IntelliJ is all there is.

1 comments

When's the last time you checked out IntelliJ? It does incremental compilation these days, plus auto-save-and-compile whenever you switch tabs (not just when you save the current tab, which bit me many times in Eclipse; though I haven't used Eclipse in at least four years now), so code completion is immediately updated. I'm pretty sure this has been the case for a few years now.
Yesterday, sorry to say but still off by magnitudes. These things are measured in ms on the eclipse side and in whole seconds on the Intellij side. On a good day it's less than 5 seconds in Intellij. I developed in Eclipse before I switched a few years ago and while it was a bit finicky with gradle, maven support was pretty solid. I never had issues where Eclipse compilation state was wrong for more than a few hundred ms. Basically if it says it compiles it means it compiled without errors, class files exist and when you run something it jumps straight to forking the process with no delay. In Intellij, it takes seconds at best; sometimes closer to 30-60 seconds.

Given that performance is a recurring topic in the Intellij release notes I conclude that they know they still have issues there and they are slowly looking for ways to make things faster. This is not a solved problem.

Part of this is the Kotlin compiler; part of this is indexing; part of this is simply caching logic.

I recently worked on the Elasticsearch code base in intellij. Fast is not a word I would use to describe that. It's a big code base and it clearly was struggling with it. I know some Elastic developers that still use Eclipse basically for this reason.