All posts in Eclipse

Retrouvez DocDoku sur l’EclipseCon 2018

Les 13 et 14 juin prochains, DocDoku vous donne rendez-vous dans la ville rose pour l’EclipseCon France 2018, le grand rassemblement annuel français de la communauté Eclipse.

Comme lors de la précédente édition, DocDoku reste fidèle à son engagement en tant que sponsor de l’événement et vous accueillera sur son stand pour parler solutions et technologies, mais également présenter ses derniers cas clients.
Le programme de la conférence 2018 couvrira cette année des sujets en lien avec la modélisation, les systèmes embarqués, le Cloud, la Data Analytics, le DevOps et plus encore, le tout agrémenté de sessions de démonstration des outils basés sur Eclipse.

Cette année nous serons particulièrement attentifs aux conférences sur l’arrivée dans la fondation du groupe de travail JakartaEE, auquel DocDoku appartient désormais.
En effet, ce projet ambitieux prend la suite de la renommée plateforme de développement d’applications d’entreprise Java Enterprise Edition, maintenue par Oracle précédemment.

Nous resterons également captivés par les conférences du groupe de travail Polarsys, auquel DocDoku participe également au travers de la plateforme PLM d’Eclipse EPLMP.

13 et 14 juin 2018
Centre de Congrès Pierre Baudis
11 esplanade Compans Caffarelli
31000 Toulouse

Lien direct vers le formulaire d’inscription : ici

Retour sur EclipseCon France 2017


Comme les années précédentes, DocDoku était présent à l’EclipseCon France et j’ai pu assister à quelques présentations.
Faut-il encore présenter le projet Eclipse ? Pour ceux qui auraient vécu dans une grotte durant les 16 dernière années (ou ceux qui n’étaient pas nés), Eclipse est un projet proposant une plateforme extensible, basée sur OSGi, qui permet de construire des applications par agrégation de greffons (plugin) en se basant sur une bibliothèque de composants sur l’étagère.
À une époque éloignée Eclipse était considéré comme un environnement de développement intégré – c’était la première application il est vrai – pourtant force est de constater qu’année après années le projet va bien au delà de cela et que ce n’est pas près de s’arrêter, l’étagère ne cesse de s’agrandir.
Hier c’était une plateforme, puis une fondation, puis un ensemble de projets basés sur les technologies de la plateforme, aujourd’hui l’écosystème ne cesse d’évoluer et s’immisce dans une quantité impressionnante de domaines : bien sûr les outils de développement, mais aussi la modélisation, le cloud, ou encore une multitude de domaines (IoT, robotique, science, big data, …).

Au début il y avait l’outil

Du côté des outils de développement, toujours plus d’améliorations pour déboguer, pour tester, pour suivre les évolutions des langages. Java reste le langage privilégié mais ne règne plus en maître, certains veulent pouvoir développer dans la plateforme avec d’autres langages.

Java 9

L’intégration de Java 9 arrive avec son lot de nouveautés, lié en particulier au nouveau système de module tant attendu de la dernière version de la plateforme d’Oracle :

  • Support des images (jimage);
  • Support des modules (JMOD);
  • Nouveau fichier module-info.java.

De gros changements en perspective avec la disparition programmée (progressivement) des fichiers JAR.

Déboguer

Les outils de débogage s’améliorent aussi Barbero [2017].

  • triggerpoint pour activer un certain nombre de breakpoints
  • conditional watchpoint
  • tracepoint pour écrire dans la console et éviter les System.out.println() dans le code.
  • Show Logical Structure permet d’obtenir une représentation simplifiée de la structure de certains types (Listes, Maps, …)

Couverture de code

À l’occasion de l’intégration d’EclEmma, un outil de couverture de code Java, à la distribution Eclipse Oxygen, SonarSource nous rappelle quelques bonnes pratiques pour éviter les bogues Mandrikov [2017]. Un outil intégré, non intrusif, pourquoi s’en passer?

EASE

EASE (Eclipse Advance Scripting Environment) propose le moyen d’intégrer du code développé avec des langages de script dans la plateforme Eclipse.
Airbus présente un retour d’expérience : Constatant que le développement d’un plugin Eclipse nécessite certaines contraintes, l’idée est de proposer un pont pour le langage Python offrant une API simplifiée aux composants Eclipse. Les avantages d’un langage de script avec la puissance de la plateforme en somme Bernard [2017].

Abstraire par les modèles

Au devant de la scène cette année, l’ingénierie dirigée par les modèles était particulièrement
bien représentée. Par modèle j’entends une représentation abstraite de concepts mis en jeu dans un domaine particulier.

D’une part, la première journée accueillait le Xtext Summit – série de conférences sur Xtext, technologie liée aux langages dédiés (Domain-specific Language) : définition d’un langage et génération des outils. D’autre part, de nombreuses conférences gravitaient autour des modèles.

Je n’ai pas pu assister à toutes les conférences, mais le peu que j’en ai vu a affûté ma curiosité.

Eclipse EMF Parsley

Eclipse EMF Parlsey fournit un ensemble de composants d’interface utilisateurs basés sur EMF.
L’équipe de RCP Vision illustre la mise en œuvre d’une démarche MDA: Un modèle EMF, une transformation décrite par un DSL Xtext. C’est-à-dire comment un modèle EMF peut être transformé, enrichit, grâce à un DSL Guidieri et al. [2017a].

Après M2Doc : Doc2M

Ou comment l’approche Model to Document (M2Doc) n’est pas toujours suffisante.

Après une présentation intéressante de l’utilisation de la technologie M2Doc pour générer des PDF à partir de données structurées – conformément à un modèle et des gabarits (au format xdoc) – on nous montre que cela n’est pas toujours satisfaisant et un cas où il faut aussi synchroniser les documents avec les instances du modèle Michot [2017].

Big EMF models

Générer des applications à partir d’un modèle c’est bien, mais comment stocker, partager et gérer l’évolution d’un modèle, surtout quand celui-ci devient important ? Un tour d’horizon des solutions disponibles nous donne un aperçu des outils à disposition et de leurs limites, en particulier lorsque les modèles deviennent très gros, et quelques pistes pour y remédier Viaud and Lasalle [2017].

S’envoler vers les nuages

Quel que soit le domaine, la plate-forme Eclipse et ses applications font
face à un nouvel enjeu : la (re-)localisation croissante des applications dans
le cloud.

La plateforme Eclipse est historiquement plutôt tournée vers le Desktop, du moins en ce qui concerne l’interface utilisateur. Les nouveaux usages de l’informatique, réclament ce qui aurait paru un peu utopique quelques années en arrière: pouvoir utiliser n’importe quelle application, y compris un environnement de développement depuis n’importe quel appareil (pourvu que ses capacités soient adaptées) et depuis n’importe où (pourvu que l’on ait du réseau).

Eclipse RAP

Avec SWT comme base pour les composants graphiques, bon nombre d’applications construites sur la plateforme Eclipse aimeraient exposer leur interface utilisateur à travers les technologies du Web.

Eclipse RAP vise à remplacer les composants SWT natifs par un équivalent Web, avec à la clé l’espoir de pouvoir exposer n’importe quelle application RCP sur le Web.

Au fil du temps cela ne fonctionne pas trop mal mais SWT ayant été conçu pour fonctionner en local, sa transposition à travers un réseau reste verbeuse (beaucoup d’interaction entre le client et le serveur). Cela semble tout de même rester acceptable pour RCP Vision qui nous fait un retour d’expérience sur la mise en œuvre d’une applications Desktop et Web à partir d’un modèle EMF Guidieri et al. [2017b].

Eclipse Che

Eclipse Che vise, rappelons le, à offrir un environnement de développement en mode Web. Cela nécessite des changements assez importants par rapport à un IDE traditionnel:

  • Interface utilisateur déportée (ici le choix s’est tourné vers la réécriture de l’interface utilisateur avec GWT)
  • Serveur de compilation et de traitement
  • Espace de travail partagé ou multiples

On retrouve les gros changement de modèle d’architecture induis par le Cloud (approvisionnement, distribution serveur et client Web).

La présentation nous montre comment cela peut être mis en œuvre et laisse entrevoir les avantages que l’on peut en tirer Benoit [2017].

Theia

Après Eclipse Che dont je viens de parler, développé en Java; Eclipse Orion – un autre IDE en ligne, dédié aux technologies du Web, développé en JavaScript ; voici un autre projet d’IDE, Theia-ide, développé en TypeScript. Il n’est ni sous licence Eclipse, ni basé sur la plateforme et ses technologies, mais il ambitionne d’être l’« Eclipse du futur », aussi bien sur le PC que sur le cloud (https://github.com/theia-ide/theia).

Approvisionner une application Eclipse

Une application Eclipse est un agrégat de greffons. Plus le nombre de greffon augmente, plus construire une application devient complexe (récupérer, agréger, configurer, …).

Nombre d’équipe de développement sont confrontés à ce problème lorsqu’il s’agit de travailler avec une configuration cohérente de leur IDE et de synchroniser les évolutions et mises à jour. Fini le temps où il fallait installer et configurer manuellement chaque greffon, Eclipse Oomph répond à ce problème.

L’idée de Frauhofer FOKUS est de combiner Oomph, Maven et Docker pour automatiser l’approvisionnement d’une application Eclipse Bureck [2017].

Conclusion

Au fil des ans, le projet Eclipse continue de montrer son dynamisme, historiquement centré sur sa plateforme, l’écosystème se diversifie et agrège des projets parfois alternatifs ou sans rapport direct avec celle-ci. Outre l’ingénierie dirigée par les modèles, vaste sujet, qui m’a paru plus bouillonnante que jamais, trouver une solution pour des applications déployées sur le cloud me semble être le prochain défi pour la plateforme. Les modèles ne pourraient-ils pas être la clé ?

Bravo pour l’organisation impeccable, le programme riche et varié : difficile de choisir parmi les différentes conférences, heureusement petits fours et douceurs étaient là pour nous consoler.

Références

Barbero [2017]
Mikaël Barbero.
Debug java code like a pro.
2017.
URL
https://www.eclipsecon.org/france2017/sites/default/files/slides/2017ecf.pdf.
Benoit [2017]
Florent Benoit.
How to provide a portable developper workspace with eclipse che.
2017.
URL
https://www.eclipsecon.org/france2017/sites/default/files/slides/2017-EclipseCon-France-Chefile_0.pdf.
Bernard [2017]
Alain Bernard.
How ease unleashes the scientific power of airbus’ engineers in
eclipse.
2017.
URL
https://www.eclipsecon.org/france2017/sites/default/files/slides/ECF2017_EASE_full.pdf.
Bureck [2017]
Max Bureck.
From nothing to complete environment with maven, oomph and docker.
2017.
URL
https://www.eclipsecon.org/france2017/sites/default/files/slides/MavenDockerOomph.pdf.
Guidieri et al. [2017a]
Francesco Guidieri, Vincenzo Caselli, and Lorenzo Bettini.
The emf parrsley dsl: an extensive use case of xtext/xbase powerful
mechanism.
2017a.
URL
https://www.eclipsecon.org/france2017/sites/default/files/slides/EMF%20Parsley%20DSL%20Xtext%20case%20study.pdf.
Guidieri et al. [2017b]
Francesco Guidieri, Vincenzo Caselli, and Lorenzo Bettini.
Lesson learned from using emf to build desktop and web aplications.
2017b.
URL
https://www.eclipsecon.org/france2017/sites/default/files/slides/EclipseCon_France_2017.pdf.
Mandrikov [2017]
Evgeny Mandrikov.
Code coverage in practice.
2017.
URL
https://www.eclipsecon.org/france2017/sites/default/files/slides/Code%20Coverage%20in%20Practice%20-%20EclipseCon%20France%202017.pdf.
Michot [2017]
Arnaud Michot.
Doc2m update your model from your document in a breeze!
2017.
URL
https://docs.google.com/a/cetic.be/presentation/d/1Qs9IEBR9qUYc3urd3qCum02BZJciZSjUycoL4bMoNNs/edit?usp=sharing.
Viaud and Lasalle [2017]
Benoit Viaud and Jonathan Lasalle.
Emf model getting xxl? an overview of available solutions.
2017.
URL
https://www.eclipsecon.org/france2017/sites/default/files/slides/ECon17_Artal_XXL-Models.pdf.

Eclipse RAD

Il y a quelques jours lors d’un déjeuner avec Jean-Marie Damas (un des organisateurs de l’Agile Tour), nous avons évoqué le framework Eclipse RAP (Rich Ajax Platform).
Ce framework n’est pas vraiment tout nouveau et finalement si discret qu’il n’est pas très connu.
L’idée de RAP est d’être le pendant de RCP (Rich Client Platform) dans le monde Web. Il fournit le même environnement « Workbench » et les applications RAP sont implémentées avec les mêmes APIs SWT et JFace que celles tournant sous RCP.
Cette approche universelle peut séduire mais elle me rappelle un peu trop de nombreuses autres tentatives de grand écart qui se sont soldées pour la plupart par des échecs. JDO (Java Data Objects), par exemple, voulait offrir une API unique de persistance et cela quelque soit le système de stockage sous-jacent (BD, XML, fichiers à plat…).

Si l’on souhaite obtenir le meilleur de la plateforme d’exécution il n’est pas souhaitable de concevoir une application web comme une application lourde, une application de bureau comme une application pour mobile…La liste est longue !

architecture-RAP