If only more people thought like this then I wouldn't be looked at funny when calling my Emacs an IDE. Instead I have some 90% of PyCharm functionality (+ Org Mode), but I constantly hear that it doesn't count because "I had to configure all these plugins" and so on...
And last time I checked VS installed everything it needed to run by itself - it didn't even ask if I want it IIRC. Dunno about Eclipse.
Eclipse and IntelliJ don't come with the compiler, probably due to licensing.
Also keep in mind that VS only works in Windows, not as cross platform as these two. Installing for Single-Family-OS (Windows...) vs different OSes => different complexity.
Which is why I think that IDE makers that don't make their language are at a disadvantage (that they should try to work around), and language makers that don't provide an IDE don't take full advantage of their situation. A language/platform without a good dev experience is just not complete. The dev experience is a huge part of what a lang/platform does, and should influence design decisions at every level, i.e. "do we have all the debugging/hot-deploy/profiling entry points in place", or "could this grammar be better for providing autocomplete in invalid synax"?
As for java IDE's: it can't be rocket science to detect & use existing java installations in a good way, or even download & install them in the background (even with licensing issues).
> what's the recent version of Java that should be installed?
The latest one? The most common one? The one the IDE requires?
Surely you don't want to use an older one? Even if you deploy to an older target, if you can't do that from a newer one something is wrong. Worse case the IDE could just ask during installation.
If the IDE setup isn't made by monkeys, suerely it wouldn't rely on a hard-coded download url. They would serve it themselves or ask a web service on their end for the URL to the java installer. Sorry if I sound like a grumpy old man, but it's exactly this sort of thinkning that makes OSS platforms and IDE's so clumsy to work with.
The error is usually the idea of "this tool just tries to do X and doesn't care about Y", or sometimes phrased as "the tool does one thing, and does it well". While that is a noble idea, it should never be used as an excuse for a crappy UX.
I believe Eclipse and IntelliJ do detect & use existing (default) Java installations, just can't download&install them in the background (plus there might be complication in doing so: what's the recent version of Java that should be installed? can we guaranteed Oracle won't break the URL, etc etc).
It's not a text editor, it's the whole experience. I never even want to worry about where libraries are or where the compiler executables are. I just want to edit and run code. If the compiler comes with libraries, debugger and editor, or if the IDE comes with libraries and compiler doesn't matter. I want the matlab experience, not the gcc experience.
Example: A java IDE that can't set up java automatically for me (OR detect/configure an existing install without my intervention) is disappointing.
While it is disappointing if it doesn't have a single setup experience, they should at least try to locate & use an existing install without the user having to specify a path on disk or an env-var for example. Two installs but no gluing is at least acceptable.
Eclupse and Idea need Java to be installed for example. And I'd guess VS needs .NET to be installed.