In this book, we have tried to focus on the Java language and APIs without spending too much time talking about specific tools. But Java programming today really requires the use of an Integrated Development Envrionment (IDE). Modern languages and develoment tools are intertwined to such an extent that it’s hard to imagine working on large projects without the support of a good IDE. Modern development tools “understand” the language deeply and give you great power to create, search, modify, and fix problems with your code.
A wide array of Java IDEs with varying features are available. Like all power tools, IDEs are constantly changing and improving. Our preferred development environment of many years is Intellij IDEA by JetBrains. However, by far the most widely used IDE for Java is the open source Eclipse project. In the tutorial introduction to this book, we briefly introduced Eclipse. In this appendix, we will go a little farther and use it to load and explore the example code from this book, which have been packaged for you as an Eclipse project.
IDEs offer many benefits as well as a few drawbacks, especially for the new Java programmer. The benefits include an all-in-one view of Java source code with syntax highlighting, navigation help, source control, integrated documentation, building, refactoring, and deployment all at your fingertips. The downside, historically at least, has been that the all-in-one tool tends to become an all-or-nothing tool that locks users into the product and makes them all but helpless without it. IDEs tend to encourage an overly simplistic project layout with no structure or partitioning to help humans understand it. IDEs can also become hairballs of state and information about the project that cannot be easily shared with other developers or across projects. Many of these problems are being addressed by the latest generation of IDEs and for most people, the benefits far outweigh the negatives.