IDE : définition
Un environnement de développement intégré, ou IDE, est un logiciel de création d'applications, qui rassemble des outils de développement fréquemment utilisés dans une seule interface utilisateur graphique (GUI). Un IDE se compose habituellement des éléments suivants :
- Éditeur de code source : un éditeur de texte qui aide à la rédaction du code logiciel, avec des fonctions telles que la coloration syntaxique avec repères visuels, la saisie automatique en fonction du langage et la vérification de bogues dans le code pendant la rédaction.
- Utilitaires d'automatisation de version locale : des utilitaires qui permettent d'automatiser des tâches simples et reproductibles lors de la création d'une version locale du logiciel à destination du développeur lui-même, par exemple la compilation du code source en code binaire, la mise en paquet du code binaire et l'exécution de tests automatisés
- Débogueur : un programme qui permet de tester d'autres programmes en affichant l'emplacement des bogues dans le code d'origine
Types d'IDE fréquemment utilisés
Il existe de nombreux cas d'utilisation techniques et métier pour les IDE, ce qui signifie qu'il existe de nombreux IDE propriétaires et Open Source sur le marché. Voici les critères qui permettent généralement de différencier les IDE :
- Nombre de langages pris en charge : certains IDE sont réservés à un langage et représentent donc le meilleur choix pour un modèle de programmation spécifique. IntelliJ, par exemple, est principalement un IDE Java. D'autres IDE prennent en charge une grande variété de langages. Par exemple, l'IDE Eclipse prend en charge les langages Java, XML, Python, etc.
- Systèmes d'exploitation pris en charge : le système d'exploitation du développeur limite le choix de l'IDE (sauf s'il s'agit d'un IDE cloud). De même, si l'application est développée pour un système d'exploitation spécifique (tel qu'Android ou iOS), le choix de l'IDE peut être limité.
- Fonctions d'automatisation : si la plupart des IDE comprennent les trois fonctions clés (édition de texte, automatisation des versions et débogage), de nombreux IDE comprennent également des fonctions supplémentaires telles que le réusinage de code, la recherche de code et les outils d'intégration et de déploiement continus (CI/CD).
- Effets sur les performances du système : l'empreinte mémoire d'un IDE peut être un élément important à prendre en compte si un développeur souhaite exécuter d'autres applications qui consomment de la mémoire en parallèle.
- Plug-ins et extensions : certains IDE permettent de personnaliser les workflows pour les adapter aux besoins et aux préférences du développeur.
IDE de développement mobile
Quasiment tous les secteurs ont été affectés par l'utilisation croissante des applications conçues pour les smartphones et les tablettes. De nombreuses entreprises se sont ainsi tournées vers le développement d'applications mobiles en plus des applications web traditionnelles. Le choix de la plateforme est un des facteurs clés du développement d'applications mobiles. Par exemple, si une nouvelle application doit pouvoir être utilisée sur un appareil iOS, Android, ainsi que sur une page web, il sera sans doute plus judicieux de commencer avec un IDE capable de prendre en charge plusieurs plateformes pour différents systèmes d'exploitation.
IDE cloud
Les IDE disponibles sous la forme d'un SaaScloud offrent de nombreux avantages par rapport aux environnements de développement locaux. Tout d'abord, avec une offre SaaS, il n'y a pas besoin de télécharger de logiciel ni de configurer des dépendances et environnements locaux. Les développeurs peuvent ainsi contribuer rapidement aux projets. Ce type d'offre permet également de standardiser les environnements des membres de l'équipe, et donc d'éliminer les problèmes récurrents de compatibilité entre les différentes machines. De plus, puisque l'environnement de développement est géré de manière centralisée, aucun code n'est hébergé sur l'ordinateur personnel des développeurs. Les éventuels problèmes de propriété intellectuelle et de sécurité sont ainsi évités.
L'effet des processus sur les machines locales est également différent. Les processus comme l'exécution de versions et les tests de suites demandent généralement une grande puissance de calcul. Aussi, les développeurs ne peuvent souvent pas utiliser leur poste de travail pendant l'exécution de telles tâches. Un IDE de type SaaS permet de traiter des tâches qui durent longtemps sans monopoliser les ressources de calcul d'une machine locale. De plus, les IDE cloud ne dépendent pas d'une plateforme, ce qui permet de se connecter à différents fournisseurs de cloud.