Integrated Development Environment - software that allows you to write and compile code. Use the arduino-ide tag for questions about the official Arduino software.

The process of programming consists of several stages, including:

  • editing the source code
  • managing libraries and build events
  • compiling/linking the program (or sketch)
  • debugging the program when it is running

In the case of Arduino, it typically also involves uploading the sketch to a device.

Each part of this process is often managed by a separate program. These are often command-line based, and can be quite difficult to learn. However, an Integrated Development Environment (IDE) combines everything into one application, and often automates several common tasks. This simplifies the programmer's workflow, allowing him/her to focus more on the project at hand.

The official Arduino software is a very light-weight IDE, based on the Processing Development Environment. It includes all of the essential functionality for writing and uploading Arduino sketches, but lacks several features which are found in more sophisticated applications.

Some users prefer more mainstream IDEs, which can have plug-ins or extensions to support Arduino. These include Eclipse, Visual Studio, and XCode. More information about alternative IDEs can be found on this question.

If the question is about the official Arduino IDE use the tag.