Chaque année, au début de l’été, la communauté Eclipse livre une nouvelle version de sa plate-forme de développement. Il s’agit cette fois de Neon, la 11 ème de la série, Eclipse 4.6, qui introduit un grand nombre d’améliorations, tant au niveau ergonomique et simplicité d’usage de la plate-forme qu’ouverture aux frameworks et technologies actuelles : Docker, Node.js et le mode NPM, JSON, GULP, etc. Selon ses promoteurs, elle regroupe 84 projets distincts et 69 millions de lignes de code…
Impressionnant…

Quelques uns des projets nouveaux introduits dans la galaxie Eclipse
Les changements les plus importants

Ils sont très nombreux.

D’abord, plusieurs nouveaux projets sont venus rejoindre la communauté :

  • Nebula, centré sur des composants graphiques à destination de l’API SWT : il faudra se poser des questions sur la dualité SWT vs Swing et tenter de mieux comprendre la stratégie d’IBM qui est derrière cette initiative
  • EMF Parsley, un outil de construction d’interfaces graphiques en passant par des annotations pour un modèle EMF, dont on rappelle qu’il s’agit d’un framework de modélisation, un générateur de code qui part d’un modèle exprimé en XMI et produit les classes Java correspondantes
  • MoDisco, un environnement pour moderniser les applications existantes
  • l’intégration d’outils de déploiement dans Eclipse vers la plate-forme CloudFoundry, une plate-forme PaaS d’origine VMWare, mais reprise maintenant par Pivotal
  • le projet Paho dédié à l’Internet des objets, qui met en œuvre les protocoles de messagerie inter-objets MQTT et MQTT-SN
Pour le développeur, ces détails n’en seront pas
Nouvelle ergonomie

La page d’accueil a été modifiée, plus moderne, associée à un nouveau thème « solstice » et un nouveau bouton « workbench » qui minimise cette page et fait apparaître l’espace de travail, proprement dit.

Un mode plein écran a été ajouté, de même qu’une possibilité de cacher ou de faire apparaître la boîte à outils. Et petit détail, mais oh combien « agréable », la taille des icônes de la boîte à outils s’adapte à la définition de l’écran dont on dispose.

Autre détail, mais très pratique, par <CTRL> + <3>, on accède à un champ de lancement de commandes d’Eclipse et il suffit de taper l’une des commandes disponibles pour la lancer. Ce que l’on retrouve d’une manière un peu différente, avec <ESC> sur d’autres plates-formes.

La couleur des liens est désormais modifiable par les CSS, de même que la barre de défilement natif « StyleText ». Quant aux utilisateurs Linux, ils apprécieront qu’Eclipse soit maintenant compatible avec la bibliothèque GTK3.

La plate-forme IDE

De très nombreux changements ont été apportés à la plate-forme IDE proprement dite.

  • on peut désormais sauvegarder nos paramètres, comme les favoris Eclipse Marketplace, dans un compte Eclipse.org, de manière à les retrouver dans d’autres sessions, lancées sur des machines différentes
  • un mode de sauvegarde automatique peut être déclenché quel que soit l’éditeur retenu, toutes les 20 secondes, sans que le programmeur ait donc quoi que ce soit à faire
  • le mode « word wrap » peut être activé si l’on veut continuer l’écriture d’une ligne sur la ligne du dessous sans avoir à le préciser
  • dans le cas où l’on aurait à commenter un code, dans une démonstration par exemple, on peut maintenant actionner le mode zoom : <CTRL> + <+>  pour augmenter la taille des caractères, ou au contraire la diminuer : <CTR> +<->, la même fonctionnalité étant accessible par les doigts sur une tablette tactile
  • un correcteur orthographique est activé par défaut en anglais, mais on peut choisir d’autres langues
  • si Eclipse ne trouve pas d’éditeur dédié à un type de fichier, il propose d’effectuer une recherche sur Internet et d’en importer un, puis de l’installer, si l’usager est d’accord
  • le cas échéant, on pourra se contenter de l’éditeur multi-format WikiText, qui a été lui-aussi amélioré et qui supporte en particulier le format Asciidoc, un langage de balisage léger
  • parmi les éditeurs spécialisés, on trouve maintenant un éditeur JSON très utile, mais aussi un éditeur JavaScript désormais compatible avec la norme ECMASCRIPT 2015, une cible incontournable
De nombreuses améliorations ont été apportées à la plate-forme concernant les langages, Java, PHP, etc
Les langages

Une plate-forme de développement, c’est avant tout un support aux langages et frameworks auxquels ils peuvent accéder. Le reste, la simplicité d’usage, une meilleure ergonomie, c’est très bien, mais ce n’est pas l’essentiel. De toute façon, on trouvera toujours ailleurs un détail mieux implémenté que sur Eclipse, qui n’a d’ailleurs jamais bâti sa réputation sur la qualité et la simplicité de ses interfaces et de son ergonomie.

Ce qui n’a pas empêché des générations de développeurs de produire du code de qualité.

La communauté rappelle sur ce point que grâce à l’envoi du rapport automatique de bogues, 107.000 développeurs ont vu leurs problèmes corrigés, ce qui montre à la fois l’intérêt de l’outil, mais aussi celui des développeurs, qui l’ont littéralement plébiscité.

Eclipse 4.6 supporte maintenant PHP 7 avec son fameux nouveau runtime (dommage qu’il soit différent de celui de Java), de même que Node.js, le phénomène JavaScript sur les serveurs, ainsi que Docker via un plugin, qui permet à Eclipse d’entrer dans le monde « fascinant » des conteneurs. En réalité, c’était déjà possible avant mais on ne peut pas dire que la solution telle qu’elle existait ait vraiment emballé les foules…

Avec Neon Eclipse 4.6, l’assistant d’importation des projets est capable de deviner le type de projet dont il s’agit, à partir des fichiers à importer. Il détecte les langages de programmation utilisés, installe et configure les modules dont il aura besoin pour fonctionner.

Cela dit attention, il n’installe pas de plugins et si vous devez en avoir un pour travailler, ce  sera à vous de l’installer.

Evolution également très importante, le support de Bower (gestion des dépendances) et npm (gestionnaire de paquets Node.js), mais aussi Grunt (un outil pour créer des tâches automatisées en JavaScript) et gulp, un automatiseur de tâches (« task runner »).

Sinon pour les détails :

  • on peut afficher le contenu du presse-papier (<CTRL>+<Maj>+<V>)
  • une option de nettoyage des arguments de type redondants a été ajoutée dans l’onglet « Unnecessary Code » des préférences Java
  • une meilleure analyse des champs génériques est effectuée  (champs null)
  • dans la vue « Package Explorer », une option du menu permet maintenant d’afficher ou au contraire de cacher le nœud des bibliothèques libellées « Referenced libraries », comme dans la vue « package Explorer »
  • dans le menu « Customize view », une nouvelle option apparaît, pour afficher les dossiers de bibliothèques vides (« Empty library »)
  • adjonction de nouvelles annotations : @Retention@Target et @Documented, avec leurs valeurs possibles
  • création et affectation d’un nouveau champ à partir des paramètres d’une méthode
  • sélection de plusieurs éléments pour lesquels rechercher leurs références, déclarations et implémentations, quand ces éléments sont applicables
  • activation des assertions pour les configurations de nouveaux lancements JUnit, qui peut être désactivée dans le menu des préférences Java
  • disponibilité d’un nouvel assistant pour fabriquer des plugins Eclipse 4
  • pour ce qui est plus précisément du formateur de code Java, plusieurs adjonctions sont à noter :
  • une nouvelle option d’alignement des champs en colonne
  • la capacité d’activer ou non l’ajout de nouvelles lignes après les annotations sur les constantes « enum »
  • dans le nouvel onglet « Parentheses », le choix « Separate lines » permet de placer du code sur plusieurs lignes entre deux parenthèses, mais on pourra toujours préserver les « Preserve options » si l’on veut gérer manuellement les positions des parenthèses
  • possibilité de définir la politique de formatage pour les types paramétrés avec l’option « Line Wrapping », de même que choisir d’aller à la ligne avant « Wrap before » ou après « Wrap after operator », les opérateurs d’affectations et les expressions conditionnelles
  • possibilité enfin d’autoriser ou de restreindre l’installation des points d’arrêts des projets indépendants (par défaut c’est non), option accessible dans les préférences Java.
Une « release » majeure

On a un peu tendance à dire que toutes les releases d’Eclipse sont majeures. Si l’on s’en tient au nombre de modifications et d’adjonctions en tout cas et aux commentaires des observateurs.

En fait, c’est l’universalité d’Eclipse qui veut cela. Car il s’agit d’une plate-forme de plus en plus ouverte, qui se veut compatible avec tout ce dont ont besoin les développeurs et même si depuis longtemps, on s’éloigne du périmètre de Java.

De plus, on sent bien que la communauté est particulièrement motivée pour ne pas se laisser distancer, même sur des points spécifiques, par Netbeans, IDEA IntelliJ et d’autres, à qui on n’arrête pas de l’opposer.

Incontestablement, Eclipse « tient la route ». La communauté est active, à jour et efficace pour intégrer ce qui se fait de mieux ailleurs. Il suffit d’ailleurs de demander aux développeurs qui l’utilisent, ce qu’ils en pensent. Dans 90 % des cas, à moins d’un tremblement de terre ou d’un tsunami planétaire, ils n’envisagent en aucune manière de changer d’IDE. C’est un signe.