In the context of software development, an IDE refers to an Integrated development environment.
IDE's generally encompass a text editor along with tools (or links to tools) to compile, run, test and debug software in development. They exist for most languages, and also for many platform targets.
Richer IDE's may have a number of other features:
- syntax highlighting - words light up in a colour when the software recognises them, or in other colours when they are wrong,
- Auto-completion - Commonly typed keywords may be automatically suggested, or requested with a simple keypress. Sometimes this can get a little annoying.
- Object Browsing - Being able to use a point/click system to navigate around a structure or library
- Language Help - Though every reasonable IDE has help on getting around the IDE itself, some also come with built in, or links to help on the language being programmed.
- Project Management - Most modern IDE's come with the ability to group files into projects, and specify project wide settings, as well as automate more advanced builds.
- Error Processing - Many IDE's will deal with output from a compiler or test process, and allow you to use the list to highlight the lines in the file where an error occurred.
- Task Management - Some IDE's allow creation of tasks and checklist to tick them off. Sometimes this links up with the error processing.
- Folding - Many IDE's allow code blocks to be collapsed so a more brief view of the file can be presented.
- Code generation wizards - point and click processes to build file templates, complete classes or just simply help with little common blocks.
- Round trip tools to go between code and design diagrams, like UML? entity diagrams, and to go back too.
- Code documentation tools like Javadoc and Doxygen to generate navigable API references.
- GUI Builder Tools - designers and wizards like GLADE.
- Code formatting - The ability to refine the style of code, and fix things like indenting styles and where braces have ended up.
- Refactoring - Renaming a function or variable, and having all references updated too.
The list of rich features is constantly increasing.
Some exceptionally good IDE's:
- Eclipse - this is perhaps a very feature rich and heavyweight IDE, with plugins for nearly every language. Being based upon Java, it runs on almost any computer platform, and has a massive following. It is free and open source. This has all of the tools listed above, although support for all features may vary depending on the choice of language. Java is its flagship language.
- Scite - A more minimal IDE, which is basically an advanced text editor, which still exceeds features of the IDE's of a few years ago. It includes syntax highlighting, autocompletion, code folding, format and indentation fixing and supports many languages. It runs on Linux and Windows.
Historically, the Borland Turbo IDE's, even in the DOS era, were the real trend setters, along with EMACS, which still has an almost unswerving loyal user base now.
Most programmers may occasionally turn to simple editors like notepad and vi (note that vi has been massively extended in vim), but would generally use an IDE in preference, not for the flash bells and whistles, but for the boost in speed and productivity it can bring.
Bricxcc? is an open source IDE aimed squarely at developing code for the Lego programmable bricks like the NXT and RCX. SciTE can also be used for this purpose and give satisfactory highlighting.