Dot.Blog

C#, XAML, WinUI, WPF, Android, MAUI, IoT, IA, ChatGPT, Prompt Engineering

A bas les grilles !

[new:27/09/2010]A bas les grilles ! De tout genre et de toute provenance !

Ahhhh ça fait du bien :-)

Un petit coup de gueule en passant donc… Je lisais le forum Silverlight US et encore des questions sur les grilles, les DataPager, etc…

Alors soyons clairs : Je hais les grilles comme Jean Yanne haïssait les départementales dans un sketch aussi vieux qu’incontournable. Et encore lui jouait-il l’indignation et la répulsion, un rôle d’acteur. Moi je hais réellement les grilles. Pour être exact je déteste l’utilisation qui en est faite, les grilles ne sont que des objets et on ne peut leur en vouloir… (Je parle des grilles de données bien entendu).

Pourquoi tant de haine ?

Parce que sauf en de rares occasions (et je dis rares, au sens le plus restrictif du terme) les grilles qu’on place dans les applications ne sont que la traduction d’une énorme paresse du développeur soit, tout aussi souvent, d’un travail bâclé de l’analyste qui n’a pas pris le temps de comprendre ce dont avait réellement besoin l’utilisateur.

“Alors dans le doute, hop! j’te colle une grille, comme ça y’a tout ! “

Le problème n’est pas récent, la pression monte autant que la moutarde à mon nez depuis des lustres, au sens propre, donc depuis plusieurs fois 5 ans. Autant dire que j’ai les narines qui piquent !

Il y a deux principaux types de grilles :

La grille fourre-tout

C’est la plus courante. On ne sait pas ce que veut l’utilisateur, ni comment il se servira du logiciel, alors on balance une grille avec cinquante colonnes, voire plus, il n’aura qu’à faire son choix et à passer son temps à scroller… On s’en fout, le développeur n’est pas obligé d’utiliser les trucs affreux qu’il pond parfois (et c’est bien dommage !).

Le pire c’est que “ça” pompe des mégas sur les réseaux ces saletés ! Qu’il s’agisse de celui de l’entreprise ou d’internet quand les données proviennent de services distants. Car si sous les pavés il y a la plage, sous la grille il y des requêtes souvent aussi abominables que les grilles elles-mêmes… Des requêtes remontant des centaines, des milliers d’enregistrements (ou d’objets) !

Mais l’informaticien qui aime les grilles se moque de ces problématiques. Autant que la consommation mémoire de ses frivolités (car toutes ces lignes en mémoire, virtualisées ou non, ça consomme comme un poivrot au bar du coin dès potron-minet).

Autant le dire tout de suite : Je n’ai jamais vu un seul utilisateur lire plus de deux ou trois pages dans une grille.

Non, je rêve à voix haute en fait, j’ai hélas vu trop souvent de pauvres utilisateurs s’esquinter les yeux à parcourir des dizaines de pages car il n’y avait aucun autre moyen de trouver l’information ! Vous dire ce qu’ils pensaient des informaticiens ne serait pas convenable pour les lecteurs chastes qu’un langage vert choquerait… A peu près la même chose que ce que vous pensez des garagistes ou des dentistes qui achètent 10 euros des prothèses fabriquées en Chine et qui vous les vendent 1500 euros sans la pose (rhétorique de garagiste, c’est fait exprès).

La grille fourre-tout est la mort du Design, de la User Experience, c’est le degré zéro de la bavure technique pas même un chef-d’œuvre de nullité, juste la goutte qui fait déborder le vase dans lequel se soulage le pisseur de lignes (et l’analyste du dimanche) !

une grille moche :

image

La grille sapin de Noël

“Elle fraîche elle est belle ma grille ! Achetez-en !”

La grille sapin de Noël est peut-être celle qui me dégoutte le plus. La grille fourre-tout est nulle, moche, inutile, mal pensée, mais au moins c’est du travail de sagouin et ça se voit tout de suite.

La grille sapin de Noël c’est plus vicelard, plus pervers. Il y a des types qui passent leur temps à développer des grilles pas possible, des trucs à sous-niveaux rétractables et double piston inversés.

Il y en a même qui fournissent des “skins” avec. Vous pouvez changer la couleur du sapin de Noël, et même laisser l’utilisateur choisir et changer quand il veut. Génial !

En dehors du fait que ces grilles sont congénitalement frappées des mêmes tares que les grilles moches, à savoir qu’elles traduisent une mauvaise analyse doublée d’une programmation paresseuse, elles sont impossible à utiliser sans fournir un manuel de 200 pages. Autant pour le développeur d’ailleurs que pour l’utilisateur. Le développeur c’est bien fait pour lui. Mais le pauvre utilisateur ? Qu’a-t-il fait pour mériter un tel châtiment ? Rien. Le pire c’est que le développeur est généralement fier de son œuvre.

Les grilles sapin de Noël sont donc aussi nuisibles que les grilles moches, avec en plus une lenteur (d’exécution et de chargement) généralement proportionnelle à la liste des fonctionnalités extraordinaires qu’elles exposent.

des grilles sapin de Noël (avec sous niveaux, groupes, modèle TDI 16 soupapes) :

image image image

Les bonnes grilles, ça existe ?

Oui : une bonne grille est une grille morte.

Celles qui frétillent encore un peu peuvent passer si elles sont suffisamment occit.

C’est à dire lorsqu’elles se résument à une page ou deux de 10 à 15 lignes maximum et qu’elles servent à retourner les premières informations qui correspondent au vrai besoin de l’utilisateur dans le contexte donné. Que cette adaptation soit automatique (le luxe !) ou bien qu’elle découle d’une saisie de critères par l’utilisateur.

Bref, une bonne grille est une grille bien utilisée, c’est à dire qu’elle ne sert qu’à présenter peu d’informations déjà filtrées avec le minimum de colonnes nécessaires (celles qui sont utiles pour que l’utilisateur puisse faire son choix).

Une bonne grille est ainsi une grille de sélection. C’est à dire que sous Silverlight ou WPF on peut systématiquement la remplacer par une Listbox et un DataTemplate adapté. Exit les grilles donc.

Les exceptions qui confirment la règle

Forcément, il y a des exceptions. Pour la saisie principalement.

Dans certains cas, en effet, il se peut qu’une grille soit un élément d’interface tout à fait adapté à la circonstance. Notamment pour certaines saisies rapides de données. Mais dans ce cas la grille est vide : c’est l’utilisateur qui la remplit et jamais, lui, n’ira la remplir de milliers d’enregistrements en quelque secondes. Ca, seuls les informaticiens savent le faire avec les grilles fourre-tout ou sapin de Noël.

Pour résumer

Les grilles, de quelque type soient-elles sont laides, rectangulaires comme les fenêtres de Windows 1.0, et font régresser l’expérience utilisateur au temps des consoles IBM 5250 connectées aux mainframes, ou aux AS/400 (une bonne trentaine d’années donc, au minimum). Ci-dessous un bon exemple (issu d’un émulateur moderne avec des couleurs pour faire plus jeune).

image

Elles sous-entendent le plus généralement une consommation excessive des ressources réseau et de la mémoire des machines clientes.

Elles sont lentes, et plus elles veulent en faire, plus elles sont lentes.

Le pire c’est qu’elles sont aussi lentes à charger en tant que composant (regardez les principales grilles sapin de Noël vendues pour Silverlight et essayez de les utilisez avec une connexion française dans la norme, soit 512K à 1Mb, et vous me direz combien de bières vous avez eu le temps boire avant que l’application n’arrive à l’écran…).

Il n’y a finalement que deux utilisations des grilles qui rendent la présence de ce composant acceptable : soit la saisie rapide de données de même nature et comprenant peu de champs, soit la présentation de résultats de recherche filtrés ne dépassant pas 30 à 50 lignes grand maximum.

De fait, en dehors de la saisie qui impose un composant particulier, la grille peut être remplacée par une Listbox templatée dans 99% des cas.

Conclusion

N’utilisez pas de grilles ! Sauf dans le cas où cela s’avère un choix judicieux, ce qui est fort rare. Ne succombez pas aux sirènes des grilles sapin de Noël. Quitte à utiliser une grille, faites dans la simplicité d’utilisation et la sobriété du look et des fonctionnalités. Vouloir intégrer Excel dans un composant et le connecter à des millions de données stockées sur un réseau et croire qu’on a “programmé un logiciel” est stupide, en plus d’être un mensonge.

Un logiciel bien pensé est bien designé, et les éléments d’interface pour l’utiliser apparaissent aisément (et rapidement). (emprunté à Nicolas Boileau)

La sobriété est mère de toutes les vertus, autant que les grilles sont mères de tous les vices…

Pensez-y la prochaine fois que vous serez tenté d’une coller une petite par ci ou par là !

Et Stay Tuned !

Faites des heureux, partagez l'article !
blog comments powered by Disqus