Eclipse est un environnement de développement intégré (IDE) utilisé dans la programmation informatique . Il contient un espace de travail de base et un système de plug-ins extensible pour personnaliser l'environnement. Il s'agit du deuxième IDE le plus populaire pour le développement Java et, jusqu'en 2016, il était le plus populaire. Eclipse est écrit principalement en Java et son utilisation principale est le développement d'applications Java, mais il peut également être utilisé pour développer des applications dans d'autres langages de programmation via des plug-ins, notamment Ada , ABAP , C , C++ , C# , Clojure , COBOL , D , Erlang , Fortran , Groovy , Haskell , HLASM , JavaScript , Julia , Lasso , Lua , NATURAL , Perl , PHP , PL/I , Prolog , Python , R , Rexx , Ruby (y compris le framework Ruby on Rails ), Rust , Scala et Scheme . Il peut également être utilisé pour développer des documents avec LaTeX (via un plug-in TeXlipse) et des packages pour le logiciel Mathematica . Les environnements de développement incluent les outils de développement Java Eclipse (JDT) pour Java et Scala, Eclipse CDT pour C/C++ et Eclipse PDT pour PHP, entre autres.
La base de code initiale provient d' IBM VisualAge . Le kit de développement logiciel (SDK) Eclipse, qui comprend les outils de développement Java, est destiné aux développeurs Java. Les utilisateurs peuvent étendre ses capacités en installant des plug-ins écrits pour la plateforme Eclipse, tels que des kits d'outils de développement pour d'autres langages de programmation, et peuvent écrire et contribuer à leurs propres plug-ins. Depuis Eclipse 3.0 (sorti en 2004), les plug-ins sont installés et gérés sous forme de « bundles » à l'aide d' Equinox , une implémentation d' OSGi .
Le SDK Eclipse est un logiciel libre et open source , publié sous les termes de la licence publique Eclipse , bien qu'il soit incompatible avec la licence publique générale GNU . Il a été l'un des premiers IDE à fonctionner sous GNU Classpath et il fonctionne sans problème sous IcedTea .
Histoire
Eclipse a été inspiré par la famille de produits d' environnement de développement intégré (IDE) VisualAge basée sur Smalltalk . Bien que plutôt réussis, un inconvénient majeur des produits VisualAge était que le code développé n'était pas dans un modèle d'ingénierie logicielle basé sur des composants . Au lieu de cela, tout le code d'un projet était conservé dans une base de données compressée utilisant des techniques SCID (un peu comme un fichier zip mais au format .dat). Les classes individuelles n'étaient pas facilement accessibles, certainement pas en dehors de l'outil. Une équipe principalement du laboratoire IBM de Cary, en Caroline du Nord, a développé le nouveau produit comme un remplacement basé sur Java. En novembre 2001, un consortium a été formé avec un conseil d'administration pour faire avancer le développement d'Eclipse en tant que logiciel open source . On estime qu'IBM avait déjà investi près de 40 millions de dollars à cette époque. Les membres d'origine étaient Borland , IBM , Merant , QNX Software Systems , Rational Software , Red Hat , SuSE , TogetherSoft et WebGain. Le nombre de stewards a augmenté à plus de 80 à la fin de 2003. En janvier 2004, la Fondation Eclipse a été créée.
Eclipse 3.0 (sorti le 21 juin 2004) a sélectionné les spécifications de la plateforme de services OSGi comme architecture d'exécution.
L' Association for Computing Machinery a décerné à Eclipse le prix ACM Software System Award 2011 le 26 avril 2012.
Licences
La licence publique Eclipse (EPL) est la licence fondamentale sous laquelle les projets Eclipse sont publiés. Certains projets nécessitent une double licence, pour laquelle la licence de distribution Eclipse (EDL) est disponible, bien que l'utilisation de cette licence doive être demandée et soit étudiée au cas par cas.
Eclipse a été initialement publié sous la Common Public License , mais a ensuite été re-licencié sous la Eclipse Public License. La Free Software Foundation a déclaré que les deux licences sont des licences de logiciel libre , mais qu'elles sont incompatibles avec la GNU General Public License (GPL).
Nom
Selon Lee Nackman, directeur technique de la division Rational d'IBM (créée en 2003) à l'époque, le nom « Eclipse » (datant d'au moins 2001) n'était pas un jeu de mots sur Sun Microsystems , car le principal concurrent du produit au moment du nom était Microsoft Visual Studio , qu'Eclipse devait éclipser.
Différentes versions d'Eclipse ont reçu des noms scientifiques différents. Les versions nommées d'après Callisto , Europe et Ganymède , qui sont des lunes de Jupiter , ont été suivies d'une version nommée d'après Galilée , le découvreur de ces lunes. Elles ont été suivies de deux noms sur le thème du soleil, Hélios de la mythologie grecque et Indigo , l'une des sept couleurs d'un arc-en-ciel (qui est produit par le soleil). La version suivante, Junon, a une triple signification : une figure de la mythologie romaine , un astéroïde et un vaisseau spatial vers Jupiter . Kepler , Luna et Mars ont continué le thème de l'astronomie, puis Neon et Oxygen ont constitué un thème des éléments chimiques . Photon a représenté un retour aux noms sur le thème du soleil.
À partir de 2018 , le système alphabétique a été abandonné afin de mieux s'aligner sur la nouvelle stratégie de publication simultanée. [ ] Les versions sont nommées au format AAAA-MM pour refléter les versions trimestrielles, en commençant par la version 4.9 nommée 2018-09.
Communiqués de presse
Depuis 2006, la Fondation coordonne une publication simultanée annuelle . Chaque publication inclut la plateforme Eclipse et plusieurs autres projets Eclipse.
De 2008 à 2018, chaque version simultanée avait lieu le 4e mercredi de juin. En 2018, le projet est passé à des versions trimestrielles (13 semaines) AAAA-MM sans versions de service intermédiaires.
Architecture
Eclipse utilise des plug-ins pour fournir toutes les fonctionnalités au sein et au-dessus du système d'exécution. Son système d'exécution est basé sur Equinox , une implémentation de la spécification du framework de base OSGi .
En plus de permettre à la plateforme Eclipse d'être étendue à l'aide d'autres langages de programmation , tels que C et Python , le framework de plug-ins permet à la plateforme Eclipse de fonctionner avec des langages de composition comme LaTeX et des applications réseau telles que Telnet et les systèmes de gestion de base de données . L'architecture du plug-in prend en charge l'écriture de toute extension souhaitée dans l'environnement, par exemple pour la gestion de la configuration . La prise en charge de Java et CVS est fournie dans le SDK Eclipse , avec la prise en charge d'autres systèmes de contrôle de version fournie par des plug-ins tiers .
À l'exception d'un petit noyau d'exécution, tout dans Eclipse est un plug-in. Ainsi, chaque plug-in développé s'intègre à Eclipse de la même manière que les autres plug-ins ; à cet égard, toutes les fonctionnalités sont « créées égales ». Eclipse fournit des plug-ins pour une grande variété de fonctionnalités, dont certaines proviennent de tiers utilisant des modèles gratuits et commerciaux. Parmi les exemples de plug-ins, on peut citer le langage de modélisation unifié (UML), les diagrammes Sequence et autres diagrammes UML, un plug-in pour DB Explorer, et bien d'autres encore.
Le SDK Eclipse inclut les outils de développement Java Eclipse (JDT), offrant un IDE avec un compilateur incrémental Java intégré et un modèle complet des fichiers sources Java. Cela permet des techniques de refactoring avancées et une analyse de code. L'IDE utilise également un espace de travail , dans ce cas un ensemble de métadonnées sur un espace de fichiers plat permettant des modifications de fichiers externes tant que la ressource d'espace de travail correspondante est actualisée par la suite.
Eclipse implémente les éléments de contrôle graphique de la boîte à outils Java appelée Standard Widget Toolkit (SWT), alors que la plupart des applications Java utilisent la boîte à outils standard Java Abstract Window Toolkit (AWT), Swing ou JavaFX . L'interface utilisateur d'Eclipse utilise également une couche d'interface utilisateur graphique intermédiaire appelée JFace , qui simplifie la construction d'applications basées sur SWT. Eclipse a été conçu pour fonctionner sur Wayland lors d'un projet Google Summer of Code (GSoC) en 2014.
En 2017 , les packs linguistiques développés par le projet Babel fournissent des traductions dans plus de 40 langues naturelles .
Plateforme client riche
Eclipse fournit la plate-forme client riche (RCP) pour le développement d'applications à usage général.
Les composants suivants constituent la plateforme client riche :
- Equinox OSGi – un framework de regroupement standard
- Plateforme principale – démarrer Eclipse, exécuter des plug-ins
- Standard Widget Toolkit (SWT) – une boîte à outils de widgets portable
- JFace – classes de visualisation pour intégrer la programmation du contrôleur de vue de modèle à SWT, les tampons de fichiers, la gestion de texte, les éditeurs de texte
- Eclipse Workbench – vues, éditeurs, perspectives, assistants
Voici des exemples d'applications client riches basées sur Eclipse :
- IBM Notes 8 et 9
- Attachmate-Novell NetIQ Designer pour Identity Manager
- Répertoire Apache Studio
- Environnement de composants distants
- DBeaver , un logiciel client SQL
- Performance du portefeuille
- UDig , un logiciel SIG
- AnyLogic , un outil de modélisation de simulation multi-méthodes
Plateforme serveur
Eclipse prend en charge le développement pour Tomcat , GlassFish et de nombreux autres serveurs et est souvent capable d'installer le serveur requis (pour le développement) directement depuis l'IDE. Il prend en charge le débogage à distance, permettant à un utilisateur de surveiller les variables et de parcourir le code d'une application qui s'exécute sur le serveur connecté.
Plateforme d'outils Web
Le projet Eclipse Web Tools Platform (WTP) est une extension de la plateforme Eclipse avec des outils pour le développement d'applications Web et Java EE. Il comprend des éditeurs de code source et graphiques pour une variété de langages, des assistants et des applications intégrées pour simplifier le développement, ainsi que des outils et des API pour prendre en charge le déploiement, l'exécution et le test des applications.
Plateforme de modélisation
Le projet Modeling contient tous les projets officiels de la Fondation Eclipse axés sur les technologies de développement basées sur des modèles. Tous sont compatibles avec le framework de modélisation Eclipse créé par IBM. Ces projets sont répartis en six catégories :
- La transformation de modèle comprend des projets utilisant des modèles basés sur Eclipse Modeling Framework (EMF) comme entrée pour produire soit un modèle, soit du texte comme sortie. Les projets de transformation de modèle à modèle incluent ATLAS Transformation Language (ATL), un langage de transformation open source et une boîte à outils utilisée pour transformer un modèle donné ou pour générer un nouveau modèle à partir d'un modèle EMF donné. Les projets de transformation de modèle en texte contiennent Acceleo , une implémentation de MOFM2T , un modèle standard en langage texte de l' Object Management Group (OMG). Le générateur de code Acceleo peut générer n'importe quel langage textuel (Java, PHP, Python, etc.) à partir de modèles basés sur EMF définis avec n'importe quel métamodèle ( Unified Modeling Language (UML), Systems Modeling Language (SysML), etc.). Il est open source.
- Les outils de développement de modèles comprennent des projets mettant en œuvre diverses normes de modélisation utilisées dans l'industrie, ainsi que leurs boîtes à outils. Parmi ces projets, on trouve des implémentations de plusieurs normes :
- Langage de modélisation unifié (UML)
- Langage de modélisation de systèmes (SysML)
- Langage de contrainte d'objet (OCL)
- Modèle et notation des processus métier (BPMN)
- Sémantique du vocabulaire et des règles d'entreprise (SBVR)
- Schéma XML (XSD)
- Association nationale des distributeurs de produits électroniques (NEDA)
- Transformations de modèle à modèle (MMT)
- Concrete Syntax Development contient le Graphical Modeling Framework, un framework basé sur Eclipse dédié à la représentation graphique des modèles basés sur EMF.
- Abstract Syntax Development héberge le framework de modélisation Eclipse, cœur de la plupart des projets de modélisation de la Fondation Eclipse et des frameworks disponibles pour l'EMF comme les objets de données connectés (CDO), la requête EMF ou la validation EMF.
- La technologie et la recherche comprennent la modélisation de prototypes de projets, l'hébergement de tous les projets de modélisation de la Fondation Eclipse pendant leur phase d'incubation.
- Amalgam fournit le packaging et l'intégration entre tous les outils de modélisation disponibles pour le package Eclipse dédié aux outils de modélisation.
Gestion du cycle de vie des applications
La gestion du cycle de vie des applications (ALM) et la gestion des tâches dans Eclipse nécessitent un composant optionnel appelé Mylyn ( / ˈ m aɪ l ɪ n / ), une implémentation open source de l' interface centrée sur les tâches . Il fournit une API pour les outils intégrant l'interface centrée sur les tâches. Pour les développeurs de logiciels, il aide un développeur à travailler efficacement avec de nombreuses tâches différentes (telles que les bogues, les rapports de problèmes ou les nouvelles fonctionnalités). Les tâches sont intégrées à Mylyn. Pour toutes les tâches qui ont été intégrées, Mylyn surveille l'activité de l'utilisateur et essaie d'identifier les informations pertinentes pour la tâche en cours. Il utilise ce contexte de tâche pour concentrer l'interface utilisateur Eclipse sur les informations associées. Mylyn peut s'intégrer à des référentiels tels que Bugzilla , Trac , Redmine , Mantis , JIRA , Unfuddle, et GitHub . Il se concentre sur l'amélioration de la productivité en réduisant la recherche, le défilement et la navigation. En rendant le contexte de la tâche explicite, Mylyn vise également à faciliter le multitâche, la planification, la réutilisation des efforts passés et le partage de l'expertise.
Le nom du projet vient de la myéline , une couche électriquement isolante qui entoure les axones des neurones. Le nom original de ce projet, « Mylar », reproduisait une marque déposée d'une société de films boPET , de sorte que la Fondation Eclipse a changé le nom du projet.
Caractéristiques
Les fonctionnalités d'Eclipse IDE incluent un éditeur de texte avec coloration de la syntaxe, une assistance au codage, la saisie semi-automatique du code , la refactorisation du code , l'analyse du code avec des suggestions de « correction rapide » ainsi que le débogage du code .
En plus de la prise en charge native d'OSGi, la prise en charge de JPMS a été ajoutée à partir de Java 9.
Extensions
Eclipse prend en charge une large sélection d'extensions, notamment la prise en charge de Python via PyDev , le développement Android via ADT de Google (remplacé par Android Studio depuis 2015), JavaFX via e(fx)clipse, JavaScript , jQuery et bien d'autres sur la place de marché Eclipse. Valable est un plug-in Vala pour Eclipse.
En plus des avertissements intégrés du compilateur Java, des plug-ins supplémentaires sont disponibles pour le linting afin d'améliorer la qualité et la cohérence du code, tels que SpotBugs et Sonar.
La prise en charge des outils de build tels que Ant , Maven , Make et CMake inclut la possibilité de remplacer directement le format de fichier de projet natif Eclipse par Maven pom.xml.
Distributions alternatives
Plusieurs distributions alternatives existent dans le projet Eclipse.
Outils de développement PHP
Le projet PHP Hypertext Preprocessor (PHP) Development Tools fournit un cadre pour la plateforme Eclipse. Le projet englobe tous les composants de développement, y compris la complétion de code, le développement de PHP et la facilitation de l'extensibilité. Il s'appuie sur la plateforme d'outils Web Eclipse (WTP) et la boîte à outils de langages dynamiques (DLTK) existantes.
Outils de développement Android
Android Development Tools (ADT) a été remplacé en 2015 par le propre plugin de la fondation Eclipse, appelé Andmore: Development Tools for Android , après que Google ait arrêté le développement de son plug-in pour l'IDE Eclipse, conçu pour fournir un environnement intégré dans lequel créer des applications Android. ADT/Andmore étend les capacités d'Eclipse pour permettre aux développeurs de configurer de nouveaux projets Android, de créer une interface utilisateur d'application, d'ajouter des packages basés sur l'API Android Framework, de déboguer leurs applications à l'aide des outils Android SDK et d'exporter des fichiers .apk signés (ou non signés) afin de distribuer leurs applications. Il est disponible gratuitement en téléchargement. ADT de Google était l'IDE officiel pour Android jusqu'en 2015, mais a été remplacé par Andmore d'Eclipse et l' Android Studio officiel . En 2024, le projet semble être moribond, sans activité depuis 2017.