L’interface graphique d’une application d’entreprise est par nature très volatile. Elle évolue continuellement pendant tout le cycle de vie de l’application. Et c’est bien naturel : l’interface graphique constitue la partie visible de l’iceberg applicatif. Son ergonomie impacte directement la productivité des utilisateurs, et leur adhésion à l’application.

Autre problématique, l’interface graphique ne peut maintenant plus reposer sur un positionnement absolu des composants graphiques dans les formulaires. En effet, de nombreux paramètres changent d’un poste utilisateur à un autre : résolution de l’écran, taille des polices, langue utilisée. Pour gérer ces aspects, les layout managers sont petit à petit en train de devenir la norme, aussi bien en .NET qu’avec Java. Précurseur dans ce domaine, le monde Java connaît trop bien les difficultés de ce type d’approche pas forcément toujours très naturelles pour le commun des mortels. Après quelques errances, l’expérience a permit de faire émerger des layout managers à la fois suffisamment puissants et raisonnablement complexes.

Pour pouvoir faire face aux changements continuels et inévitables, il faut des outils à la fois réellement productifs à la première mouture de l’interface, mais également lors des (très) nombreuses modifications ultérieures. Ces outils doivent permettre d’élaborer simplement des interfaces graphiques à base de layout managers.

Mais, il faut bien l’admettre : les outils de conception d’interface graphiques issus des outils RAD d’antant ont plutôt mal vieilli, en regard des nouvelles exigences des projets. Peu efficaces et peu agiles, ils favorisent une approche par codage direct, souvent beaucoup plus efficace, mais pas très accessible, et pas forcément très compatible avec un travail en équipe. Les créateurs de Matisse n’ont visiblement pas souhaité se résigner, et ont plutôt choisi d’innover.

Matisse, c’est l’éditeur de formulaire de NetBeans 5.0, un IDE open source connu dans le monde Java. Avec une interface d’une simplicité biblique, Matisse ne paye pas de mine : quelques icones dans la barre d’outils, quelques lignes dans le menu contextuel. En apparence frustre, Matisse recèle des trésors d’intelligence. D’abord, il réduit drastiquement le nombre de manipulations à effectuer pour créer une interface graphique. Il permet également d’effectuer très rapidement de nombreuses modifications classiques. Sans que le développeur ait à s’en soucier, Matisse respecte les conventions standards de la plateforme : écartement entre deux composants, écartement entre un composant et le bord de la fenêtre, indentation d’un composant par rapport à l’autre … Les interfaces crées reposent sur un layout manager. Ainsi, les composants se retaillent automatiquement en fonction de la taille de la fenêtre. Matisse élimine presque complètement le surcoût liés aux layout managers, et permet une productivité largement supérieure.

Bien entendu, tout n’est pas parfait, mais on sent clairement qu’une nouvelle voie est ouverte pour des outils réellement intelligents. Ainsi, avec Matisse, on a réellement la sensation d’être accompagné par un expert de l’interface graphique.

Liens