This is an archive of the old MediaWiki-based ImageJ wiki. The current website can be found at imagej.net.
IDEs
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools and a debugger. Most modern IDEs offer intelligent code completion features.
ImageJ can be developed using any IDE which supports Maven, which includes:
Why use an IDE?
There are many advantages of using an IDE for software development:
- It is easy to access documentation about classes (i.e. javadoc): just point your cursor over the name of the class, or press the keyboard shortcut (e.g., in Eclipse: ⇧ Shift+F2).
- You can use code completion: just type the start of the class name, variable, method, etc you want to use and hit the keyboard shortcut (e.g., in Eclipse: ^ Ctrl+Space).
- Compile errors are listed in a concise list; double-clicking on a line in that list will move the cursor to the problem.
- You can debug your program interactively: just open the main class (i.e. a class having a
public static void main(String[] args)
method) and launch it in debug mode. E.g., in Eclipse: go to Run › Debug As › Java Application). This will switch to a different window layout (the Debug perspective) which offers you a range of views that are useful for debugging such as: local variables, thread stack traces, etc. You can interrupt the program at any time by clicking on the pause symbol and inspect the current state, single-step through the code and even to a limited amount replace code on-the-fly. - The most important version control systems can be accessed easily through the IDE's GUI.
- There are many awesome keyboard shortcuts, especially effective to quickly explore large projects. (see e.g. keyboard shortcuts for Eclipse).
- They can be enhanced with plugins. E.g., for Eclipse, the Vrapper plugin adds a vim-like input scheme.
The main disadvantage of modern IDEs is that they are quite large and require a lot of resources—RAM and screen size in particular.