Holy dispute
It is believed that there are "eternal" questions that do not have the correct answer. For example, which is better: Windows or Linux, Java or C #; Alien vs. Predator or Chuck Norris vs. Van Damme.
One of these
holivars is choosing the best IDE for Java:
There are
constant debates about which of them have more plug-ins, hot keys, etc. There are so many differences that it is difficult to choose which of them is more important, and everyone agrees on one thing: both IDEs are about the same in their capabilities, and choosing one of them is a matter of taste.
')
So, I argue that this is not just a matter of taste. There are objective reasons why
Intellij IDEA is definitely better than Eclipse .
I underline, we now consider both environments exactly as the Java IDE.
I will not give a bunch of minor differences like plug-ins, hotkeys, etc. -
Many pages on the Internet are devoted to this, and I will explain only one, the most important difference. As a rule, neither idea people nor eclipophiles know about it, because the former are accustomed to it and do not know that this may not be the case in other IDEs, and the latter are used to living without it, and they don’t even realize that it can be better. Moreover, the eclipses do not notice him when they try IDEA for the sake of interest, because they are used to working as before.
Where such confidence?
But before talking about the main difference between IDEA, I want to explain why my opinion is worth listening to.
I worked on Eclipse for 5 years, knew it very well, wrote plugins for it, and sincerely loved it. Then I moved to another company, and was forced to transfer to IDEA. Having survived a
serious break-up , I finally understood what makes IDEA better. And now I have been working for IDEA for a couple of years. Therefore, I know what I'm saying.
The main difference between IDEA and Eclipse
The main thing that distinguishes IDEA is that it
understands the context . This is what employees of JetBrains mean when they call it “intellectual”. What does it mean? IDEA indexes your entire project, analyzes everything in it, and even builds a syntax tree. Thanks to this, IDEA at any moment, wherever you put the cursor, knows where we are and what can be done here.
Unclear? Still would. Nothing in the examples will become clear.
This ability to
understand the context is expressed in many and many aspects, I will cite only a few.
1. Debugging
In order to see the value of an expression when debugging, in Eclipse, you must first select this expression. And select exactly, randomly select an extra character - Eclipse will not understand. After that, press Ctrl + Shift + I and see the value of the expression.

In IDEA, you don’t need to select anything; you just need to put the cursor in the right place (in this case on the hasAttribute method) and press Alt + F8. IDEA itself will understand which expression you probably need, and immediately opens a dialog where you can edit the expression and immediately see its meaning:

It turns out that both IDEs basically allow you to do the same thing. But in IDEA it is much more convenient and faster. I'm serious, the difference is huge - it's just heaven and earth. In this small window, IDEA will do for you both autocomplete, syntax highlighting, and everything.
2. Autocomplete
Autocomplete is what distinguishes any IDE from notepad. And in this area, “understanding the context” gives IDEA a qualitative advantage. Suppose we started writing a line of code:
assertElement(By.id("errorMessage"), vi
, , «vi».
IDEA? , , assertElement Condition, Condition visible. :

Eclipse? , . , assertElement. , Ctrl+Space, Eclipse , , «vi»:

-
…
3.
, , IDE. IDE , , . , IDEA
. , , , .
, assertErrorMessageIsHidden:
public void assertErrorMessageIsHidden() {
assertElement(By.id("errorMessage"), Condition.visible);
}
, «errorMessage» .
IDEA. «errorMessage», Ctrl+Alt+P ( «parameter»), IDEA , :

«errorMessage» , IDEA .

, IDEA, -. , , , , , — . -, , : «, IDEA ?»
, Eclipse.
: «errorMessage» ( , «An expression must be select to activate this refactoring»), «Introduce parameter» ( , ), . , Eclipse , .

Java IDE, IDEA Eclipse. . IDEA . , , . , , , , . IDEA .
P.S.
: IDEA Eclipse Java IDE. - — , IDE (C++, Python, Scala), Desktop-, Eclipse .
-, . Eclipse ( ), IDEA « IDE Java». .
, Eclipse, , IDEA:
- Eclipse . SWT . Eclipse , IDEA .
- Eclipse . IDEA , , Eclipse workspace, , /, .
- Eclipse .
- , Eclipse . , IDEA , -.
, , IDE C++, Eclipse, , . Java-, , , , IDEA — , .
, , .
!