Part of the overhead going on in Eclipse is its built-in incremental compiler, which runs whenever it loads a file and whenever you update your code. This is on balance a very good thing, and provides error indicators as you type.
Independent of the build system, an Eclipse Java project also maintains a model of its contents, which includes information about the type hierarchy, references, and declarations of Java elements. This is also on balance a good thing, and enables several editing and navigation assistants as well as the outline view.
The current version of Eclipse is Neon (4.6.0). I installed the Eclipse Java EE IDE for Web Developers, but there are many other installation packages, including the option to install the minimal Eclipse SDK and add plugins only as needed. The last option is not for the faint of heart, however: it's not hard to introduce conflicts between plugins that didn't actually say they were incompatible.
Figure 2. From left to right, we're seeing four panes in the Eclipse workbench: the Package Explorer, the Java editor, the Java class outline, and a problems list. The project loaded into Eclipse in this figure is the JUnit test framework. The panes can be rearranged easily.
Extensible tools support
The plugin ecosystem is one of Eclipse's strengths, as well as being a source of occasional frustration. The Eclipse marketplace contains over 1,700 solutions currently, and community-contributed plugins may or may not work as advertised. Still, Eclipse plugins include support for over 100 programming languages and almost 200 application development frameworks. Most Java servers are also supported: if you define a new server connection from Eclipse, you'll come to a list of vendor folders, underneath which you'll find about 30 application servers, including nine versions of Apache Tomcat. The commercial vendors tend to lump their offerings together: for example, there is only one item under Red Hat JBoss Middleware, which includes WildFly and EAP Server Tools as well as JBoss AS.
Editing, browsing, refactoring, and debugging
Your first experience with Eclipse can be disconcerting, and even confusing. Your first task is to adapt to Eclipse's conceptual architecture of workspaces, perspectives, and views, the functions of which are determined by what plugins you have installed. For Java server development, for example, you are likely to use the Java, Java EE, and Java browsing perspectives; the package explorer view; the debugging perspective, a team synchronizing perspective; web tools; a database development perspective; and a database debugging perspective. In practice, all of those start to make sense once you open the views you need.
In Eclipse there is often more than one way to do a given task. For example, you can browse code with the package explorer and/or the Java browsing perspective; which you choose is a matter of taste and experience.
Sign up for Computerworld eNewsletters.