The Arduino® Integrated Development Environment (IDE), also known as the Arduino® Development Environment, is a program designed to make it easier to write software for this open source platform. The Arduino® platform is a popular electronics platform designed to simplify the process of designing electronic devices. Common uses for it include robotics, home improvement technology, wearable computers, and novelty electronics applications. Most Arduino® inventions are developed using the Arduino® IDE.
IDEs are commonly used by programmers to speed up the process of programming. Common IDE features include automatic line numbering, syntax highlighting, and integrated compiling. While it is technically possible to write software using only a simple text editor, the process is much easier when writing code in an IDE. Many programming languages have their own IDEs, and several general purpose IDEs have been developed. These general purpose IDEs can be used with a variety of supported programming languages.
The Arduino® IDE provides an environment which allows programmers to use a single program from start to finish. It can keep track of multiple files in a project, allowing programmers writing more complex or modular programs to manage their projects. The IDE also compiles code itself, does basic debugging, and transmits the code directly to the Arduino® board, which will then use the Arduino® bootloader to write the new program into memory.
Despite these additional features, some programmers have complained that the Arduino® IDE is lackluster compared to other, more advanced, IDEs. This is because it lacks several common features, including automatic visible line numbering, which would allow programmers to easily refer to specific sections of the source code when evaluating error messages or communicating with other programmers. Other missing features include detailed error messages, which are useful for diagnosing and fixing a coding error, and code folding, which allows programmers to examine only relevant portions of source code by hiding pars which are not affected by recent changes.
In order to deal with these limitations, some Arduino® programmers use other IDEs to write programs. These users have written software plugins for general purpose IDEs that add support for Arduino® specific programming. This adds many of the features that programmers miss in the Arduino® IDE, but the solution also comes with several limitations. In order to maintain the ability to use generic IDEs for Arduino® code, programmers must be routinely update their plugins with each new release of Arduino® software. Additionally, these generic IDEs cannot interface with Arduino® boards, and therefore cannot be used to upload completed software to an Arduino® invention.