# Integrated development environment

Een integrated development environment of IDE is computersoftware die een softwareontwikkelaar ondersteunt bij het ontwikkelen van computersoftware. Het bestaat uit een aantal onderdelen die samen een software suite vormen.

## Integratie

Oorspronkelijk bestond een software-ontwikkelomgeving uit niet veel meer dan de noodzakelijkste programma's, zoals de compiler en een debugger. De broncode werd meestal bewerkt met een eenvoudige editor. Sommige programma's in de ontwikkelomgeving waren van elkaars bestaan op de hoogte en konden bijvoorbeeld gemeenschappelijk directory's gebruiken, maar krachtige samenwerking was er nog niet.
Om het werken met losse programma's te vereenvoudigen, werden geïntegreerde ontwikkelomgevingen op de markt gebracht of werden afzonderlijke programma's meer en meer op elkaar afgestemd; de geïntegreerde ontwikkelomgevingen die zodoende ontstonden, worden IDE's genoemd.
Door de verschillende functies van een ontwikkelomgeving in één programma te combineren, kan tijdwinst worden geboekt, omdat het niet meer nodig is om voor een volgende stap in het ontwikkelproces een ander programma te gebruiken. Bovendien heeft een IDE over het algemeen een consistente gebruikersinterface, zodat de verschillende gereedschappen gemakkelijker te gebruiken zijn en intuïtiever aangesproken kunnen worden.

## Onderdelen

Een IDE bestaat uit een aantal onderdelen, waaronder ten minste:
* een editor, om de ontwikkelde software te schrijven/wijzigen;
* een compiler/linker, om de software te controleren en uitvoerbaar te maken;
* documentatie van de programmeertaal en de bijbehorende API's, om uitleg aan de ontwikkelaar te verschaffen.
IDE's zijn vaak uitgebreider en hebben dan ook nog onderdelen als:
* een debugger, om fouten in de software te diagnosticeren, op te sporen en te verhelpen;
* een editor voor grafische interfaces, om de software gebruikersvriendelijk te maken, geschikt te maken voor een beoogde toepassing en daarbij een beoogde gebruikerservaring te realiseren;
* een client voor een versiebeheersysteem, om het gezamenlijk ontwikkelen van de software mogelijk te maken;
* een client voor beheersincidenten (ticketing), om het beheer van de software te ondersteunen;
* modelleringsgereedschappen, om het ontwikkelen te ondersteunen.
IDE's zijn in de loop van de jaren steeds verder uitgebreid met nieuwe functies en aanvullende programma's. Ook de verschillende onderdelen zijn steeds meer ondersteuning gaan bieden aan de softwareontwikkelaar. Zo zijn editors uitgebreid met mogelijkheden voor tekstmarkering in de broncode, automatische aanvulling van de code waarbij de IDE kennis van code in het gehele project kan gebruiken, refactoring, automatisch aanmaak van basiscode, klassebrowsers voor objectgeoriënteerde talen, hulp door kunstmatige intelligentie, enz.

## Veel gebruikte IDE's

Een IDE is vaak bedoeld voor het programmeren in een bepaalde taal, hoewel ze ook taalonafhankelijk kunnen zijn. Voorbeelden van IDE's:
* Anjuta (C, C++, JavaScript, GTK+, gtkmm, vala)
* Code::Blocks (C, C++)
* Delphi (Object Pascal)
* DevC++
* Eclipse
* IntelliJ IDEA (o.a. Java, PHP (PhpStorm), JavaScript (WebStorm))
* JDeveloper (Java)
* KDevelop
* Kylix / Delphi
* Lazarus / Free Pascal
* Microsoft Visual Studio (.NET)
* NetBeans
* ONLINE PYTHON (beta)
* Powerbuilder
* PhpStorm (PHP)
* PyCharm (Python)
* Toad (o.a. voor Oracle)
* Xcode (Objective-C, Swift)