Eclipse (projet)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Éclipse (homonymie).
Eclipse
Image illustrative de l'article Eclipse (projet)
Logo

Capture d'écran d'Eclipse 3.3 sous Ubuntu
Capture d'écran d'Eclipse 3.3 sous Ubuntu

Développeur Eclipse Foundation
Première version Novembre 2001
Dernière version 4.4 Luna (25 juin 2014)
Version avancée 4.x Mars (juin 2015)
État du projet En développement actif
Écrit en Java
Environnement Windows, OS X, Linux
Langue Multilingue
Type EDI et framework
Licence EPL
Site web www.eclipse.org

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, testing, 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.

Figurant parmi les grandes réussites de l'Open source, Eclipse 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 ou WebSphere Studio Application Developer sont notamment basés sur Eclipse.

Architecture d'Eclipse[modifier | modifier le code]

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 'packages' en téléchargement[1]: 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 que Eclipse Classic, Eclipse IDE for Java EE Developers, Eclipse IDE for C/C++ Developers, Eclipse for Mobile Developers,
    • mais également d'AGL comme Eclipse Modeling Tools.
  • 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 de Eclipse, ni comme un package, mais est présenté comme une plateforme.

Les 'Top-Level Projects'[modifier | modifier le code]

Les principaux projets et sous-projets Eclipse organisés par famille

Eclipse est organisé en 2011 en 11 'Top-Level projects' ('projets de haut niveau'), chacun de ces projets pouvant contenir plusieurs sous-projets :

  • Eclipse Project est le projet fondateur comprenant notamment l'Eclipse Platform et le JDT (JDT)
  • BIRT (BIRT) pour tout ce qui a trait 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 pour tout ce qui a trait à la modélisation (UML, EMF, etc)
  • RT, ou Run Time, précédemment Device Software Development Platform (DSDP) : outils de développement pour les systèmes embarqués
  • SOA Tools Platform Project (STP) pour les outils 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) pour tout ce qui a trait au testing et à la qualification logicielle
  • Eclipse Web Tools Platform Project (WTP) pour tout ce qui a trait aux outils de développement dédiés plus spécifiquement aux technologies Web
  • Technology Project, regroupant des projets divers encore en état de veille ou incubation
  • Mylyn pour la gestion des tâches, est le dernier apparu dans Eclipse, en 2006 (v3.2)

Le noyau 'Eclipse Project'[modifier | modifier le code]

Eclipse Project constitue le projet fondateur autour duquel s'agrègent les autres composants Eclipse; il comprend en 2012 les sous-projets[2] :

  • Platform, qui définit les composants communs 'de base' de l'ensemble du modèle de développement Eclipse;
  • Le Plug-in development environment, ou 'PDE', ensemble de 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;
  • Les Java Development Tools, ou 'JDT' : cet ensemble regroupe les plugins couvrant les fonctionnalités usuelles et spécifiques aux environnements de développement tel que l'exécution de code avec debogage.

Eclipse Platform[modifier | modifier le code]

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[modifier | modifier le code]

Présenté comme une plateforme au sein de Eclipse, Eclipse RCP constitue une base de développement pour clients riches.

Historique[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

Le framework Eclipse RCP est constitué du sous-ensemble suivant [3]de bibliothèques :

mais exclut en revanche le JDT.

Projets Eclipse[modifier | modifier le code]

Fonctionnalités d'EDI[modifier | modifier le code]

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 AspectJ
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 WindowBuilder
Mylyn

(*)Cette infrastructure est aussi utilisée pour le fonctionnement interne de GEF.

Orion[modifier | modifier le code]

  • Eclipse Orion est une plateforme open source de développement Web (JavaScript, HTML, etc.), accessible via un navigateur.

Autres projets[modifier | modifier le code]

Outils de modélisation[modifier | modifier le code]

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[modifier | modifier le code]

  • Eclipse Communication Framework (ECF)
  • Java Workflow Tooling (JWT) est un ensemble d'outils destinés à faciliter le développement et l'utilisation de workflows.

Une liste plus complète et à jour est accessible depuis le site Eclipse Projects.

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[modifier | modifier le code]

De nombreux langages sont pris en charge en 2008 (la plupart grâce à l'ajout de plugins), parmi lesquels :

Internationalisation/Traduction[modifier | modifier le code]

Il est possible de traduire Eclipse 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.

En utilisant le service de mise à jour d'Eclipse :

Le projet BABEL est un plug-in prenant en charge des traductions. Il peut être ajouté à Eclipse en suivant le menu Aide(Help) > Install New Software ... > Ajouter (Add)

2 informations sont à renseigner :

  1. Le nom, par exemple Traduction (Projet BABEL)
  2. L'URL du plug-in, dépendant de la version d'Eclipse en cours d'utilisation. Pour la version Galileo, il s'agit de http://download.eclipse.org/technology/babel/update-site/galileo

Histoire du projet[modifier | modifier le code]

Le projet Eclipse a été initié par IBM pour remplacer, en utilisant Java, l'IDE Visual Age, alors basé sur Smalltalk. Dès l'origine du projet, IBM a voulu offrir une solution multiplate-forme, pouvant être exécutée sur les différents systèmes d'exploitation de ses clients. De même le projet s'est voulu extensible par le biais de plugins.

En novembre 2001, est initiée la Fondation Eclipse, à l'instigation de poids lourds de l'informatique comme Borland, IBM ou Red Hat; IBM place alors sa plateforme Eclipse en Open Source, et fin 2003 ce consortium est passé à plus de 80 membres. Eclipse est ainsi un environnement de développement libre.

Nom[modifier | modifier le code]

Le nom d'Eclipse fut l'une des raisons pour lesquelles Sun Microsystems refusa de se joindre au projet. Cependant, d'après Lee Nackman, Chief Technology Officer d'IBM Rational Software, c'était Microsoft Visual Studio, le principal concurrent que le projet voulait éclipser[5].

Versions successives[modifier | modifier le code]

Depuis juin 2007, un plan de développement Eclipse prévoit une version annuelle en juin, et deux versions intermédiaires positionnées en septembre et février[6].

Ainsi, la version 3.3 appelée Europa parut fin juin 2007. 310 développeurs répartis dans 19 pays ont écrit les 17 millions de lignes de codes qui la composent. Cette version porte officiellement 21 projets.

La version 3.5 appelée Galileo, parue en juin 2009 portait quant à elle 33 projets internes allant de la modélisation à l'analyse des performances. Plus de 380 membres appartenant à 44 organisations différentes ont contribué à l'élaboration de cette version comportant 24 millions de lignes de code[7]. Six versions de test et d'évaluation, appelées Milestone étaient déjà parues, la première en août 2008, la seconde en septembre 2008, puis Novembre 2008 et Décembre 2008 et enfin les dernières en février 2009 puis Mars 2009.

La version 3.6, appelée Helios, sortie en juin 2010, est déclinée en 12 paquetages, selon les usages pour le développement (C/C++, JavaScript, PHP,...). Elle s'appuie sur 77 projets[8]. Les principales évolutions relevées comprennent[9] : un nouveau paquetage adapté au développement en C/C++) dans l'environnement système d'exploitation Linux, une nouvelle gestion des plugins, le support de Git, le support des dernières évolutions Java (dont Servlet 3.0, JPA 2.0, JSF 2.0,EJB 3.1), une amélioration du support JavaScript (en mettant en place un cadre pour intégrer des débogueurs tels que Rhino ou Firebug), Eclipse Xtext 1.0, (environnement pour créer des langages spécifiques -domain specific languages, DSL-), une nouvelle version de Acceleo 3.0 (OMG Model-to-text -MTL-).

Après la version 3.7 'Indigo' sortie mi-2011, et la version la version 4.2 appelée Juno[10], sortie le 27 juin 2012.

La version 4.3 d'Eclipse appelée Kepler (http://www.eclipse.org/kepler/) est sortie de 26 juin 2013 et est composée de 72 projets et 42 sous projets.

Cette version apporte quelques nouveautés majeur :

  • Support de Java EE 7 pour Eclipse Web Tools (WTP)
  • Déploiement d'Orion en version 3.0 pour les outils de développement web.
  • Nouvelle suite pour la gestion des processus métier Eclipse Stardust 1.0
  • Nouveau support pour BigData Eclipse Birt 4.3 intégrant le support des base de donnée MongoDB et Cassandra
  • Amélioration de l'intégration du processus de revu de code avec Mylyn 3.9
  • Amélioration de l'intégration de Maven pour le développement JavaEE

Les progrès d'Eclipse peuvent être observés dans une vidéo relativement synthétique[11]. Seules les révisions majeures d'Eclipse figurent ici, parmi la quarantaine survenues entre la v1.0 et la 4.2[12]

Nom de code Date Version Commentaire Projets
Mars Juin 2015 4.5 Projets Mars
Luna 25 juin 2014 4.4 76 projets Projets Luna
Kepler 27 juin 2013 4.3 72 projets Projets Kepler
Juno 27 juin 2012 4.2 71 projets Projets Juno
23 février 2012 4.1.2
20 juin 2011 4.1
4.0
Indigo 22 juin 2011 3.7 62 projets Projets Indigo
Helios 23 juin 2010 3.6 77 projets Projets Helios
Galileo 24 juin 2009 3.5 33 projets. Projets Galileo
Ganymède Février 2009 3.4.2 23 projets Projets Ganymede
Septembre 2008 3.4.1
25 juin 2008 3.4
Europa 29 juin 2007 3.3 21 projets Projets Europa
Callisto Septembre 2006 3.2.1 10 projets Projets Callisto
30 juin 2006 3.2
Eclipse 3.1 Janvier 2006 3.1.2 10 projets Eclipse 3.1 Releases
Septembre 2005 3.1.1
Juin 2005 3.1
Eclipse 3.0 Mars 2005 3.0.2
Septembre 2004 3.0.1
28 Juin 2004 3.0
Eclipse v2 Mars 2004 2.1.3
Novembre 2003 2.1.2
Juillet 2003 2.1.1
Avril 2003 2.1
Novembre 2002 2.0.2
Septembre 2002 2.0.1
Juillet 2002 2.0
Eclipse v1 Novembre 2001 1.0

Extensions[modifier | modifier le code]

Eclipse supporte un grand nombre d'extensions disponibles sur Eclipse Marketplace.

Plugin Google pour Eclipse[modifier | modifier le code]

Le Plugin Google pour Eclipse (aussi appelé GPE, de l'anglais Google Plugin for Eclipse) est une extension Java (langage) d'Eclipse qui permet aux développeurs de concevoir, construire, optimiser et déployer des applications orientées cloud computing.

Android Development Tools[modifier | modifier le code]

Il s'agit d'une extension pour le développement sous Android avec l'Android SDK[13].

Références[modifier | modifier le code]

  1. Eclipse Downloads
  2. Eclipse Projecthttp://www.eclipse.org
  3. Eclipse Rich Client Platformhttp://www.eclipse.org
  4. http://pydev.org/
  5. (en) Darryl K. Taft, « Eclipse: Behind the Name », eWeek.com, Ziff Davis Enterprise Holdings,‎ 20 May 2005 (consulté le 11 August 2008)
  6. Eclipse Simultaneous Releasehttp://wiki.eclipse.org
  7. http://pro.01net.com/editorial/503837/la-galaxie-eclipse-3-5-galileo-est-accessible-en-telechargement 26/06/2009
  8. http://www.eclipse.org/helios/projects.php
  9. http://www.eclipse.org/org/press-release/20100623_heliosrelease.php annonce -en anglais-
  10. Project Plan For Eclipse Project, version Juno
  11. Code_swarm - Eclipse on Vimeo
  12. Eclipse Projects Downloadshttp://archive.eclipse.org
  13. (en) « Android Developer Tools »

Notes[modifier | modifier le code]


Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]