Eclipse est un projet, décliné et organisé en un ensemble de sous-projets de développements logiciels, de la fondation Eclipse visant à développer un environnement de production de logiciels libre qui soit extensible, universel et polyvalent, en s'appuyant principalement sur Java.
Son objectif est de produire et fournir des outils pour la réalisation de logiciels, englobant les activités de programmation (notamment environnement de développement intégré et frameworks) mais aussi d'AGL recouvrant modélisation, conception, test, gestion de configuration, reporting… Son EDI, partie intégrante du projet, vise notamment à supporter tout langage de programmation à l'instar de Microsoft Visual Studio.
Bien qu'Eclipse ait d'abord été conçu uniquement pour produire des environnements de développement, les utilisateurs et contributeurs se sont rapidement mis à réutiliser ses briques logicielles pour des applications clientes classiques. Cela a conduit à une extension du périmètre initial d'Eclipse à toute production de logiciel : c'est l'apparition du framework Eclipse RCP en 2004.
Eclipse figure parmi les grandes réussites de l'open source. Il est devenu un standard du marché des logiciels de développement, intégré par de grands éditeurs logiciels et sociétés de services. Les logiciels commerciaux Lotus Notes 8, IBM Lotus Symphony, WebSphere Studio Application Developer, Semarchy xDI ou Talend Open Studio sont notamment basés sur Eclipse.
Architecture d'Eclipse Le métaprojet Eclipse est constitué et organisé en une galaxie de projets logiciels. Sa spécificité tient à son architecture totalement développée autour de la notion de plugin en conformité avec la norme OSGi : toutes les fonctionnalités de l'atelier logiciel doivent être développées en tant que plug-in bâti autour de l'Eclipse Platform.
Eclipse propose un framework de développement logiciel fournissant des briques logicielles pour développer ces outils. En fait Eclipse est à la fois considéré comme un EDI, un framework ou une plateforme, selon que l'on considère le projet, ses composants, les EDI résultant de leur assemblage :
En effet le projet Eclipse propose également des « » en téléchargement : il peut s'agir : d'applications « prêtes à l'emploi » facilitant la diffusion d'Eclipse, en intégrant chacune un ensemble cohérent de plugins autour de l'Eclipse Platform pour répondre à différents besoins spécifiques : Il s'agit essentiellement d'IDE spécialisés, tels qu', , , , mais également d'AGL comme ; de frameworks : Eclipse RCP constitue ainsi la plateforme type pour tout environnement de développement Eclipse orienté client riche : constitué des 2 plugins fondamentaux org.eclipse.ui et org.eclipse.core.runtime, il constitue la base de tout IDE Eclipse 'RCP', mais peut aussi être utilisé à partir d'autres IDE. Eclipse RCP n'est traité ni comme un sous-projet d'Eclipse, ni comme un package, mais est présenté comme une plateforme.
Top-Level projects right|350px|Les principaux projets et sous-projets Eclipse organisés par famille
Eclipse est organisé en 2011 en onze top-Level projects (projets de haut niveau), chacun de ces projets pouvant contenir plusieurs sous-projets : Eclipse Project projet fondateur comprenant notamment l'Eclipse Platform et le JDT Business Intelligence and Reporting Tools (BIRT) dédié au reporting et à l'informatique décisionnelle Data Tools Platform Project (DTP) projet de visualisation et manipulation de base de données relationnelle Eclipse Modeling Project dédié à la modélisation (UML, EMF…) Run time (RT) précédemment Device Software Development Platform (DSDP), outils de développement pour les systèmes embarqués SOA Tools Platform Project (STP) dédiés aux architectures orientées services Tools Project regroupe des outils plus spécifiquement dédiés à certains langages de développement Test and Performance Tools Platform Project (TPTP) dédié au test et à la qualification logicielle Eclipse Web Tools Platform Project (WTP) dédié aux outils de développement pour les technologies Web Technology Project projets divers encore en état de veille ou incubation Mylyn gestion des tâches, dernier projet apparu dans Eclipse, en 2006 (v3.2)
Noyau Eclipse Project Eclipse Project constitue le projet fondateur autour duquel s'agrègent les autres composants Eclipse; il comprend en 2012 les sous-projets : Platform définit les composants communs de base de l'ensemble du modèle de développement Eclipse. Plug-in Development Environment (PDE) regroupe les plugins Eclipse permettant de développer et tester d'autres plugins Eclipse, en conformité avec OSGi sur lequel repose la philosophie Eclipse. PDE permet ainsi de créer les plugins Eclipse comme des bundle OSGi puis, par assemblage, des applications RCP complètes. Java Development Tools (JDT) regroupe les plugins couvrant les fonctionnalités usuelles et spécifiques aux environnements de développement tel que l'exécution de code avec débogage.
Eclipse Platform L'IDE Eclipse Platform est principalement écrit en Java (à l'aide de la bibliothèque graphique SWT, d'IBM) ; ce langage, grâce à des bibliothèques spécifiques, est également utilisé pour écrire les extensions.
La base de l'environnement de développement intégré que constitue l'EDI Eclipse Platform est composée de : Platform Runtime démarrant la plateforme et gérant les plug-ins SWT la bibliothèque graphique de base de l'EDI JFace une bibliothèque graphique de plus haut niveau basée sur SWT Eclipse Workbench la dernière couche graphique permettant d'organiser et manipuler des composants, tels que des vues, des éditeurs et des perspectives.
Tous ces composants de base peuvent être réutilisés pour développer des clients lourds indépendants d'Eclipse grâce au package Eclipse RCP (Rich Client Platform).
Eclipse RCP Présenté comme une plateforme au sein d'Eclipse, Eclipse RCP constitue une base de développement pour clients riches.
Historique Alors qu'à l'origine les bibliothèques logicielles développées sur le projet Eclipse visaient à créer un EDI, certains développeurs de la communauté se sont mis à réutiliser celles-ci pour de toutes autres applications. L'idée est alors née d'extraire du projet Eclipse ces bibliothèques logicielles de façon suffisamment générique pour constituer un framework générique à part entière.
Nature de Eclipse RCP Eclipse RCP est donc un framework orienté développement d'applications 'client riche', mais dépourvu des fonctionnalités propres à un EDI (notamment celles d'exécution et debug de code). Eclipse RCP constitue en fait une bibliothèque logicielle à partir de laquelle n'importe quelle application 'client riche', y compris hors du champ des ateliers de génie logiciel, peut être développée. Dit autrement, Eclipse RCP n'est rien d'autre qu'un kit de développement logiciel (SDK) spécialisé pour le développement d'applications 'client riche'.
Une application développée à partir du framework Eclipse RCP -que ce soit depuis un EDI Eclipse ou non- est alors qualifiée d' application RCP Eclipse : elle présente une IHM et un look & feel 'Eclipse-like', basé notamment sur la notion de 'workbenchs' avec vues et perspectives, mais constitue bien une application à part entière, proche du client lourd (Eclipse RCP ne couvre pas le RIA), avec ses fonctionnalités propres. Une fois générée, elle constitue une application 'standalone' qui n'a besoin pour son déploiement que de la présence du JRE sur le poste client.
Contenu de RCP Le framework Eclipse RCP est constitué du sous-ensemble suivantEclipse Rich Client Platform, eclipse.org. de bibliothèques : Eclipse Platform composant core. Plugin Development Environment (PDE) pour le développement de plugins conformes à OSGi. Equinox moteur d'exécution des plugins. WindowBuilder composant de création wysiwyg d'interface graphique. Business Intelligence and Reporting Tools (BIRT) composant de reporting et informatique décisionnelle.
Projets Eclipse Fonctionnalités d'EDI
+Cette liste ne constitue qu'un sous-ensemble des environnements qu'Eclipse propose en téléchargement. Top Level Project Projet Objectif Acronyme Tools Project Java Development Tools Project Environnement complet de développement pour le langage Java JDT Tools Project AJAX Toolkit Framework Outillage pour le développement d'applications AJAX ATF Tools Project AspectJ Projet permettant la programmation orientée aspect pour Java dans Eclipse Tools Project C/C++ Development Tools Project Environnement complet de développement pour les langages C et C++ pour Eclipse CDT Tools Project COBOL IDE for Eclipse Subproject Environnement complet de développement pour le langage Cobol pour Eclipse COBOL Tools Project Parallel Tools Platform Plateforme intégrée pour le développement d'applications parallèles PTP Tools Project PHP Development Tools framework Développement d'application web basées sur le langage PHP côté serveur. PDT Web Tools Platform project Web Services Tools Outillage pour le développement d'applications web en Java WTP ? Device Software Development Project Développement de devices logiciels pour système embarqué DSDP ? Embedded Rich Client Platform Développement de client riche pour système embarqué eRCP Tools Project Graphical Editing Framework Environnement pour le développement de visuels graphiques via le MVC(*) GEF Tools Project WindowBuilder Environnement pour le développement graphique Java Mylyn (*)Cette infrastructure est aussi utilisée pour le fonctionnement interne de GEF.
Orion Eclipse Orion est une plateforme open source de développement Web (JavaScript, HTML…), accessible via un navigateur.
Autres projets
Outils de modélisation ATLAS Model Weaver (AMW) MoDisco (prédemment ATLAS Megamodel Manager) Eclipse Modeling Framework (EMF) la partie modèle du design pattern MVC (le framework propose un visuel pour représenter le modèle nommé ecorediag qui reprend le visuel d'un diagramme de classe UML). Le modèle peut être persisté sous différentes manières : XSL, fichiers Java avec annotations XDoclet, XMI… puis la possibilité de rajouter son système de persistance. EMF gère la persistance sous forme de plusieurs fichiers ressources reliées. Graphical Modeling Framework (GMF), venu historiquement après GEF et EMF, relie ces deux frameworks. Il remplace EclipseUML. Generative Modeling Technology (GMT) UML2 est un projet pour le développement de modèles UML 2.0 dans Eclipse (UML2)
Autres Eclipse Communication Framework (ECF) Java Workflow Tooling (JWT) est un ensemble d'outils destinés à faciliter le développement et l'utilisation de workflows.
La liste des projets est disponible sur le site d'Eclipse. Un site Eclipse Marketplace a par ailleurs été mis en place pour faciliter la recherche, l'identification, et l'installation de plug-ins pour toute plateforme Eclipse.
Langages de programmation gérés De nombreux langages sont pris en charge en 2008 (la plupart grâce à l'ajout de plugins), parmi lesquels :
Internationalisation et traduction Eclipse est disponible dans de nombreuses langues via des packs« ». : NLpack1 : allemand, français, italien, japonais, coréen, portugais (Brésil), chinois traditionnel et simplifié ; NLpack2 : tchèque, hongrois, polonais et russe ; NLpack2a : danois, néerlandais, finlandais, grec, norvégien, portugais, suédois et turc ; NLpackBidi : arabe et hébreu.
Le projet Babel« ». permet d'obtenir une traduction de l'interface en utilisant le service de mise à jour d'Eclipse. Il se présente sous la forme d'un plug-in prenant en charge des traductions. Il peut être ajouté via l'interface graphique. Deux informations sont à fournir : Le nom, par exemple « traduction (projet Babel) » ; L'URL du plug-in, dépendant de la version d'Eclipse en cours d'utilisation.
Histoire du projet