InfoWorld review: Top Java programming tools
Eclipse, IntelliJ IDEA, NetBeans, and Oracle JDeveloper continue Java's tradition of rich and diverse development tools
In the category of unique features are checkers that highlight duplicate code -- a particularly pernicious smell, and one that can be hard to spot in a large code base. IntelliJ also has a dependency analysis tool that shows on a grid which methods depend on others and which ones are depended on.
This description, however, does not do justice to the feel of using IntelliJ, which is one of dealing with software that frequently surprises you by anticipating your needs. For example, all the IDEs reviewed here have a pop-up help feature that is triggered when you are typing in the name of a method. In IntelliJ, this feature (termed auto-completion) uses the contextual information from the code to guess which entry to place at the top of the list so that you don't have to scroll through multiple options. It guesses correctly with uncanny frequency; at times, it seems almost supernatural.
IntelliJ does have some limitations. Most notable is a long-standing lack of good documentation. Figuring out how to use advanced features or to solve specific problems is undeniably frustrating. Fortunately, email inquiries are answered by the developers themselves. As a result, you need only ask a question once to get the right answer. The only hitch in the process is that the developers are located in Russia, which introduces a time lag. A second issue is long startup times. This problem was reduced somewhat with version 9.0, but startup is still annoyingly slow.
These complaints aside, IntelliJ is an excellent IDE that shows how superior craftsmanship can produce commercial products that compete successfully with free competitors.