Un environnement de développement intégré (EDI ou IDE en anglais pour Integrated Development Environment) est un programme regroupant un ensemble d'outils pour le développement de logiciels.
En règle générale, un EDI regroupe un éditeur de texte, un compilateur, des outils automatiques de fabrication, et souvent un débogueur.
Bien que des EDI pour plusieurs langages existent, bien souvent (surtout dans les produits commerciaux) un EDI est dédié à un seul langage de programmation.
On peut également trouver dans un EDI un système de gestion de versions et différents outils pour faciliter la création de l'interface graphique (GUI en anglais pour Graphical User Interface).
Un EDI est seulement concevable quand le développement est fait assis devant une sorte de console d'ordinateur. Donc beaucoup de « vieux » langages n'en ont pas eu, car le développement était fait avec des organigrammes, des formulaires de codification et des cartes perforées soumises à l'ordinateur. Le premier langage qui a été créé avec un EDI fut le Dartmouth BASIC en 1964, le premier langage conçu pour être utilisé devant un terminal d'ordinateur. Cet EDI était basé sur des commandes, contrairement aux EDI modernes qu'on utilise par menus.
Dans le cas des langages qui avaient vu le jour avec le vieux système de développement sur cartes perforées, les EDI avaient été conçus comme une interface graphique au système de construction de programme par makefile, aussi les fichiers de configuration furent ajoutés. Les makefiles décrivent les options pour la construction du programme, on peut considérer leur syntaxe comme un langage à part entière tant les possibilités de ces outils sont grandes (ils permettent par exemple d'ajouter des structures de contrôles aux instructions de compilations ou d'édition de liens). Les EDI contrôlent maintenant ces outils, depuis des fenêtres graphiques, évitant ainsi aux programmeurs débutants d'être en plus confronté à la rugueuse et exigeante syntaxe du Makefile.
Certains EDI sont conçus pour supporter plusieurs technologies ou sont sont livrés avec une API qui permet à deux développeurs tiers d'écrire des modules pour étendre les fonctionnalités initiales.
Chez Embarcadero (CodeGear), on a des EDI pour le langage Object Pascal avec Delphi mais aussi pour le langage C++ avec C++ Builder.
MORFIK propose Morfik WebOS AppsBuilder qui permet de créer des applications soit destinées au Web, soit destinées aux PC, ceci dans un langage, au choix, C#, Java, Basic ou Pascal.
PC Soft propose pour sa part WinDev pour créer des applications destinées au PC, WebDev pour créer des applications Internet et WinDev Mobile pour créer des applications pour Pocket PC et SmartPhone. Ces EDI partagent le même code source et les mêmes concepts.
4e Dimension constitue une plateforme de développement et de génération de solutions applicatives, et propose un langage de programmation de haut niveau. Ses fonctionnalités dépassent la simple gestion de données : génération d'applications, environnement mono-poste et client-serveur, développement et déployement multi-plateforme (Mac OS et Windows), Serveur Web, intégration des Web Services, de XML, ouverture vers Oracle, SQL, interaction avec les applications Ajax, Web 2.0.
La suite bureautique OpenOffice.org dispose également d'un EDI permettant la création de scripts dans différents langages (BASIC, Python, BeanShell ou encore JavaScript), pour manipuler les composants du logiciel à travers l'interface de programmation (API) fournie.
Sous l'environnement Linux, beaucoup de programmeurs utilisent encore le système des makefiles et leurs dérivés. Ces outils en ligne de commande sont considérés par beaucoup comme un EDI, pensés avec un style différent d'interface. Similairement, des programmeurs utilisent Emacs qui intègre beaucoup d'outils standards de construction de programme.
Un peu à part, Veler Software propose le logiciel SoftwareZator qui est un EDI ayant la particularité de créer des logiciels pour Windows sans programmer. L'éditeur de code traditionnel est remplacé par un éditeur d'actions à remplir dans les fonctions créées par l'utilisateur basé sur le Glisser déposer. Ce logiciel serait, selon son éditeur, le premier proposant ce fonctionnement.
Pour le langage Java, il existe plusieurs EDI qui lui sont spécialement dédiés :
Dans le monde du logiciel libre et des EDI non dédiés, on trouve également :
Parmi les EDI proposant une programmation visuelle, on peut citer SCADE (basé sur la langage Lustre), SCS (pour le langage Scol)…