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,
- Source control integration - if you use Git, Subversion or other source control systems - IDE’s can work with these to make it easier to commit and diff your code.
- 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 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 good IDE’s:
- VSCode - Microsoft’s VSCode is a great general purpose IDE which runs happily on most platforms. It is free and open source.
- 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. It is free and open source. 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 and VIM, both of which still have an unswerving loyal user base.
Most programmers may occasionally turn to simple editors like notepad and vi, 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.