Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Plaidoyer pour des interfaces temps réels

L’informatisation et la mise en réseau des ordinateurs nous ont apporté beaucoup de choses formidables ces trente dernières années. Toute la culture musicale, cinématographique et encyclopédique est désormais à une portée de clic de quiconque. Téléphoner de n’importe où à n’importe qui tout autour de la terre est devenu quelque chose de tellement courant que plus personne ne s’en extasie. Et même si l’interlocuteurice s’exprime dans une autre langue ça n’est presque plus un problème avec les différents services de traduction en ligne que l’on peut avoir.

Ne parlons même pas de ce mini-ordinateur que presque tout le monde a désormais dans sa poche, équipé d’une chaîne hifi complète, d’un caméscope, d’un appareil photo d’excellente qualité et d’une connexion permanente au réseau mondial.

Nos logements sont désormais entièrement automatisables et pilotables à distance.

Je peux avoir de la musique ou la radio quand je veux dans mon casque sans fil grâce à la baladodiffusion.

Tous ces rêves numériques des années 90 se sont concrètement réalisés aujourd’hui, mais nous avons tout de même perdu quelque chose : le temps réel des interfaces

N. D. M. : par « temps réel » est ici utilisé dans le sens réponse immédiate humainement parlant, sans latence perceptible, réactives (voir les définitions Wiktionary ou Wikipedia pour temps réel qui, pour l’informatique, vont amener des exigences supplémentaires sur la durée maximale de réponse, la garantie du temps de réponse, etc.

Sommaire

Le temps réel des interfaces

En effet, avec la diffusion du numérique à tous les étages, les interfaces se sont ramollies. Aujourd’hui, lorsque nous appuyons sur un bouton pour jouer une musique, lancer une vidéo ou valider un formulaire sur Internet nous n’avons pas un retour immédiat de cet appui.

Il s’écoule souvent un temps non négligeable entre l’appui sur ledit bouton et la réaction du système. Ce problème ne se limite pas aux boutons bien sûr, c’est le même problème avec les branchements des chargeurs et autres interfaces USB, HDMI…

Nous ne sommes jamais immédiatement sûrs que l’action se soit bien passée. Si la réaction met trop de temps à venir (lancement de la musique, icône de mise en charge, validation du formulaire…) nous allons avoir tendance à réessayer au risque de se retrouver avec un « dys »fonctionnement anormal. Le bouton « play » de la musique est également le bouton pause, un ré-appui sur le bouton coupe la musique. Une absence de réaction de l’appareil au branchement va nous amener à débrancher puis rebrancher jusqu’à jeter le câble et en prendre un autre. Un ré-appui sur le bouton du formulaire va en renvoyer un autre, etc.

Nous parlons bien ici des interfaces qui ne sont pas en temps réel. Cela n’a rien à voir avec la puissance de calcul des machines. Les appareils des années 90 avaient beau avoir des interfaces temps réel, ils n’étaient pas puissants, beaucoup ne disposaient même pas de microprocesseurs.

Sur mon lecteur de cassettes audio, lorsque j’appuyais sur le bouton « play » le bouton émettait un « clic » bien distinctif et une petite vibration dans le doigt qui m’assurait que mon appui était bien pris en compte. Et si j’étais à la fin de la cassette le bouton remontait immédiatement, je savais instantanément que cela n’avait pas marché et qu’il fallait que j’appuie sur « eject » pour retourner la cassette… ou « rewind » pour rembobiner.

Lecteur cassettes
Pour lire ma cassette de petit ours brun, j’appuie sur le triangle et ça fait «clic» instantanément !

Boite à histoires Yoto
Alors que pour allumer la boite à histoires, il faut appuyer sur un bouton planqué sur le côté, et attendre plusieurs secondes que l’écran affiche un sourire. Ai-je bien appuyé ? Dois-je retenter ? Y a-t-il suffisamment de batterie pour que j’obtienne une réaction ? Et je ne parle même pas des deux boutons rotatifs rouge qui ne réagissent pas instantanément (en plus celui de gauche est à tourner pour le volume et celui de droite est à CLIQUER pour changer d’histoire…)

Les télévisions cathodiques des années 70-80 prenaient un certain temps à chauffer avant d’afficher l’image, mais l’appui sur le bouton « on » était marqué par un « clang » bien net, et nous savions que la télé était allumée, nous pouvions attendre d’avoir l’image. Les télés d’aujourd’hui mettent également du temps à s’allumer, mais elles ne signalent pas toujours la bonne réception de notre action sur la télécommande. Et ne parlons même pas des écrans d’ordinateur avec leur interface tactile à la noix (on doit pouvoir parler d'interfaces digitales pour le coup non ?) dont on ne voit même pas où se trouve le bouton.

Les systèmes sont devenus mous

Et cette mollesse les rend dysfonctionnels. Je ne compte plus le nombre de fois ou voulant ré-appuyer sur un bouton de validation, j’ai finalement appuyé sur un nouveau bouton venant d’apparaître sous mon doigt/curseur. Sans parler de tous ces systèmes électroniques portables qui prennent un temps dingue avant d’afficher quelque chose quand on appuie sur le bouton “ON”. Systèmes qui ne sont pas toujours réellement éteints d’ailleurs et dont l’appui long… les éteint !
Ne parlons même pas des systèmes avec boutons rotatifs de type « potards numériques » qui — non contents de générer des rebonds ou de sauter des pas — fonctionnent avec la même mollesse que les boutons « standard ».

Mais le problème ne se limite pas aux systèmes embarqués. Oh que non ! Toute l’informatique « desktop » et mobile est touchée. Les sites Web ont rouillé avec leurs méga-octets de bibliothèques javascript à télécharger avant de pouvoir appuyer sur le moindre bouton.

Le réseau étant désormais massivement sans fil (WiFi, GSM, 4g, 5g, gégé, …), l’on ne sait pas toujours pourquoi cette page met tant de temps à se charger. Attention, il n’est pas question ici de vitesse de connexion, mais plutôt d’absence d’indication claire de ce qui est en train de se passer : ai-je déconnecté, ou le lien réseau est-il tout simplement lent ?

Revenons aux interfaces réactives

C’est un problème d’ergonomie. Et l’ergonomie est visiblement toujours reléguée en fin de projet «tant qu’on a un truc qui marche». Cependant, on pourrait considérer que non, ça ne marche pas si l’interface est si lente à réagir.

Je suis persuadé que ce problème n’est pas une fatalité. Il est possible de revenir à des interfaces humain-machine qui soient vraiment temps réel.

Mais il faut que tout le monde s’y mette.

  • Aux électroniciennes et électroniciens de mettre systématiquement le voyant (ou vibreur, ou son) qui va bien pour signaler le bon branchement du câble, et le bon appui sur le bouton.
  • Aux développeuses et développeurs noyau de soigner l’ordonnanceur pour s’assurer que la partie interface soit bien traitée dans un temps acceptable (moins de 100 ms ?).
  • Aux développeuses et développeurs d’applis de considérer un temps de réaction trop long des interfaces comme un bug qu’il faut corriger.
  • Aux utilisatrices et utilisateurs de ne plus accepter un seul ralentissement de l’interface et remonter systématiquement le problème comme un bug et/ou ne pas acheter/utiliser le produit.

Manifeste des interfaces temps réel

Voici donc une proposition/un manifeste de règles pour des interfaces temps réel :

  1. Toute action humaine (appui ou clic-toucher sur un bouton, branchement d’un câble…) doit être validée par un retour en moins de 100 ms par un visuel, un son ou une vibration.
  2. Si le système est bloqué l’utilisateurice doit le savoir. On doit pouvoir faire la différence entre un blocage et un temps de chargement. Un genre de watchdog de l’ergonomie.
  3. On peut certainement ajouter d’autres règles quand on fera des audits ITR (Interfaces Temps Réels) dans les bureaux d’études et de développement des grosses boites.

Vers un Score-Interfaces-Temps-Réel ?

Évidement, il est impossible que ces règles s’appliquent du jour au lendemain sur tous les appareils et logiciel du marché. On pourrait inventer un système de notation, à l’image du nutri-score mais pour les interfaces. Par exemple le SITR pour Score-Interfaces-Temps-Réel et développer une appli pour pouvoir récupérer le score des produits qu’on utilise.
Appli qui aurait le culot d’avoir un mauvais score histoire de faire causer.

Conclusion

Pour conclure sur ce manifeste décousu :

✊🏼 Oui l’ergonomie est importante !
✊🏽 Oui un temps de réaction trop long est un BUG !
✊🏿 Oui il faut que ça change !

Commentaires : voir le flux Atom ouvrir dans le navigateur

L’informatique sans écran

Lors d’un Noël de ma tendre jeunesse pré-adolescente est arrivé un « ordinateur » dans le foyer. Ce PC (Intel 386) a été installé dans le bureau et a vite dégénéré en console de jeux. Puis les années passant c’est devenu une formidable source d’expérimentation informatique pour un geek en devenir. À cette époque on sensibilisait la jeunesse à ne pas passer trop de temps devant la télévision et la console de jeux, puis devant l’ordinateur et les jeux vidéo violents. Mais on ne parlait pas vraiment de l’écran.

Aujourd’hui les messages de sensibilisation se résument aux écrans :

  • « pas d’écran avant trois ans »
  • « nos jeunes passent leurs temps sur leurs écrans » (comme si les « vieux » n’y étaient pas non plus)
  • « attention les écrans fabriquent une génération de crétins »
  • « les écrans, les écrans, les écrans…»

Il est vrai qu’aujourd’hui l’informatique ne se résume presque plus qu’à un écran. De l’ordinateur avec clavier+souris+écran, voire crayon optique, on est passé aux tablettes et ordiphones qui n’ont plus que l’écran (tactile quand même).

Pour prendre le contre-pied de cette obsession des écrans, je me demandais donc s’il existait encore une informatique « sans écran ». La formidable multiplicité des activités que l’on peut avoir sur un ordinateur pourrait-elle se faire sans écran ? Dans quelle mesure peut-on coder, surfer sur le web, lire/envoyer des mails sans écran ? Cette informatique fantasmée par notre ex-ministre de l’éducation est elle une réalité ?

    Sommaire

    L’informatique, une histoire d’abord sans écran

    Si l’on date la naissance de l’ère de l’informatique avec Ada Lovelace, et qu’on estime l’arrivée des ordinateurs avec écrans à la fin des années 1970, alors on peut aisément dire que l’informatique a été plus longtemps sans écran qu’avec.

    Peinture d’Ada LovelaceMalgré son look cosplay de manga elle n’a pas subi trop d’écrans dans son enfance, elle.

    De même, il est raisonnable de considérer l’ordinateur comme l’outil principal pour faire de l’informatique. Il fut largement sans écran à ses débuts.

    Ken Thompson (assis) et Dennis Ritchie (debout) manipulant un DEC PDP-11
    Pas d’écran pour ces deux geeks qui ont développé UNIX et le langage C (source)

    L’altair8800, sorti en 1975 et sur lequel Microsoft a écrit son BASIC, se programmait avec des rubans perforées, voire avec des commutateurs, et l’affichage se faisait avec quelques diodes (DEL) en face avant.
    Les cartes à trous étant plutôt utilsées avec les gros ordinateurs (aka Big Iron).

    Vue de face de l’Altair8800Difficile de considérer ces deux lignes de diodes rouges comme l’écran de l’Altair8800

    L’écran ≠ la vue

    Pour faire sans écran, on pense instinctivement à utiliser d’autres sens que la vue comme l’ouïe ou le toucher (pour le goût ou l’odorat difficile d’imaginer la chose). Mais l’histoire de l’informatique nous montre que les premières interfaces homme-machine ne fonctionnaient pas avec des écrans, et pourtant utilisaient la vue (lumière, LED, imprimante, position mécanique…).

    Mais qu’appelle-t-on écran ?

    D’après la définition de Wikipédia, « un écran d’ordinateur est un périphérique de sortie vidéo d’ordinateur. Il affiche les images générées par la carte graphique de l’ordinateur. Grâce au taux de rafraîchissement d’écran élevé, il permet de donner l’impression de mouvement. »

    Donc si l’on s’en tient à wikipédia, un écran d’ordinateur c’est :

    • des images générées par une carte graphique d’ordinateur. Exit la télé cathodique avec un tuner analogique (qui devient rare aujourd’hui avec la TNT).
    • avec un taux de rafraîchissement élevé. Exit les liseuses et autres appareils utilisant un affichage type «  papier électronique ».
    • pas d’indication de résolutions.

    On peut sans doute rajouter les écrans (comme les télés) qui ne sont pas raccordés à une carte graphique dans la catégorie écran.

    Cela serait donc la résolution (définition et taille…) et le rafraîchissement (fréquence de balayage) du périphérique de sortie vidéo qui font un écran.

    La matrice 5 × 5 d’un micro:bit ne correspond pas à un critère de résolution suffisant, pas plus que les deux poussoirs ne pourraient prétendre à être un clavier.
    micro:bit Pourtant il affiche bien une « image » de cœur <3 !

    Les afficheurs 7 segments ne peuvent pas être considérés comme des écrans. Ils n’affichent que des chiffres et quelques symboles. Difficile de créer une impression de mouvement avec seulement des segments.
    Afficheur 7 segmentsEn faisant un effort, on arrive à reconstituer quelques lettres.

    En doublant le nombre de segments, on arrive à afficher l’ensemble des lettres de l’alphabet latin
    Afficheur 14 segmentsSans diacritiques, faut pas pousser

    Un « panel » LCD 20×4 et ses caractères de 8 pixels sur 5 forme un écran de 100 pixels sur 32, la résolution est déjà meilleure, même s’il est toujours prévu pour n’afficher que du texte. Néanmoins on se rapproche de l’idée que l’on se fait d’un « écran ».

    Du papier électronique ne peut pas être un écran. La résolution peut être excellente mais le rafraîchissement reste insuffisant.

    Finalement la définition de Wikipédia n’est guère rigoureuse ni efficace, entre l’unique LED du panneau de contrôle et l’écran haute résolution, il y a un continuum de périphériques de sortie utilisant des signaux lumineux pour former des images. Il faut peut-être alors chercher les systèmes informatiques qui, dans leur usage normal, utilisent d’autres périphériques de sortie ou pas de périphériques de sortie du tout.

    L’embarquée, une informatique massivement sans écran

    Bien sûr il faut définir le mot « informatique ». Si l’on se réfère à la définition de Wikipédia :

    L’informatique est un domaine d’activité scientifique, technique, et industriel concernant le traitement automatique de l’information numérique par l’exécution de programmes informatiques hébergés par des dispositifs électriques-électroniques : des systèmes embarqués, des ordinateurs, des robots, des automates, etc.

    Avec cette définition, le moindre dispositif électronique embarqué est de l’informatique. Lancer une machine à laver, programmer son four ou préparer une cafetière pour le lendemain est donc une forme de manipulation informatique… qu’on peut envisager sans écran.

    Cependant dès que vient le besoin de développer un système embarqué ou même de le réparer/déverminer, l’écran revient au galop. On a rapidement besoin d’un écran pour y connecter son environnement de développement et sa sonde de debug. Et même l’oscilloscope ou l’analyseur logique que l’on branche pour « voir » les signaux dispose d’un écran.

    En usage normal donc, certains dispositifs informatiques sont conçus pour ne pas nécessiter d’écran parce qu’ils disposent d’un autre périphérique de sortie. Certains centres commerciaux, certaines gares proposent des distributeurs d’histoires courtes : trois boutons comme périphérique d’entrée et une imprimante thermique comme périphérique de sortie. Appuyez et vous aurez de la lecture pour une, trois ou cinq minutes.

    Distributeur d’histoires courtes en gare de Lyon-PerracheSoyons optimistes : il n’y aura pas plus de cinq minute d’attente !

    Plus courant, une box Internet domestique est aussi un dispositif informatique sans écran.

    Livebox 6- Il est où l’écran ? - Dans ton… navigateur

    Il faut reconnaître que si l’usage courant, la connexion à l’Internet, ne nécessite pas d’écran sur la box, son paramétrage en utilise bien un : celui de l’ordinateur sur lequel tourne votre navigateur préféré.

    Les assistants vocaux sont des ordinateurs sans écran. Les principaux périphériques d’entrée comme de sortie sont audio : commande vocale, réponse également. Radio France fait d’ailleurs la publicité pour son offre pour enfants, une histoire et… Oli, sur cette absence d’écran, jouant, sans trop le dire, sur cette peur parentale des écrans.

    Pourrait-on pousser l’utilisation de ces ordinateurs pour faire du développement et «coder en vocal» ? Possible, il est tout à fait possible de programmer l’ouverture de ses volets, la lecture d’une musique ou le thermostat de sa chaudière avec. Mais ça n’est pas du développement.

    L’éducation numérique mais sans écran

    Il est largement possible d’apprendre l’informatique sans écran, et même sans ordinateur.

    La robotique pédagogique se développe depuis l’apparition de la tortue Logo. Actuellement, pour les plus jeunes dès l’école maternelle, c’est une abeille qui est proposée comme initiation à la programmation.

    Bee-Bot en actionSi, si, je suis bien un ordinateur

    La Bee-Bot se programme à l’aide de sept touches et les périphériques de sortie sont les moteurs de déplacement, un petit haut-parleur et en option un porte-crayon. Avec une interface HommeEnfant-Machine aussi simple, il s’agit plutôt d’une mémorisation de séquences de mouvements que de programmation à proprement parler et pour en utiliser toutes les capacités, un interfaçage avec une application ou un ordinateur plus conventionnel est possible, mais on y retrouve un écran ! De nombreux autres robots pédagogiques, un peu plus complexes et performants, existent mais ceux-ci utilisent un écran classique pour accéder à l’interface de programmation.

    Quitte à supprimer les écrans autant aller au bout de la démarche et supprimer l’ordinateur dans son ensemble. Des pédagogues ont ainsi inventé l’informatique déconnectée. Un papier, un crayon, ni écran ni matériel comme le jeu du robot idiot. Les esprits chagrins pourraient y voir une solution au manque de matériel des établissements scolaires.
    Plus que d’informatique il s’agit en fait d’initiation à l’algorithmie.

    Mais peut-on se passer d’écran pour développer ?

    Les plages braille

    Il existe une catégorie de population qui est contrainte de se passer d’écran pour se servir d’un ordinateur : les aveugles.

    Les personnes aveugles peuvent pourtant se servir d’ordinateur, notamment grâce à un clavier spécifiquement développé pour eux nommé « plage braille ». Grâce à ces plages brailles, les aveugles peuvent lire les caractères en braille en touchant une ligne munie de petites pointes pilotés.

    Le prix de ces appareils est assez prohibitif pour quelqu’un qui voudrait jouer avec sans en avoir réellement besoin (un geek quoi). C’est pourtant une bonne manière de faire de l’informatique sans écran. Pour le codage informatique, on utilise un braille à huit points au lieu des six habituels ce qui permet d’avoir 256 combinaisons, soit autant que la table ASCII. La table braille informatique actuelle a été approuvée à l’unanimité en 2007 par la Commission Évolution du Braille Français, elle porte le numéro TBFR2007.

    Que vaudrait un jeu vidéo développé pour une plage braille ? Et pourrait-on l’appeler jeu vidéo ?

    Avec du papier et un stylo/machine à écrire/carte perforé puis scanner

    On peut également faire beaucoup de choses un papier un crayon/stylo/pinceau puis le scanner pour qu’il soit utilisé dans l’ordinateur. Ça reste généralement qu’une étape du développement les programmes ne sont pas plus réalisés intégralement sur papier avant d’être intégré à l’ordinateur.

    Pour conclure

    Avec des écrits comme « la fabrique du crétin digital » et des propos comme ceux de notre ex-ministre de l’éducation, les écrans sont devenus la bête noire de tous les pédagogos.

    Mais l’important n’est-il pas de savoir ce que l’on fait avec un écran ? Faut-il vraiment s’acharner à s’en passer ?

    Sans doute pas.

    Il serait cependant intéressant d’apprendre à se servir d’outils réservés aux aveugles par exemple. Si nous n’avons plus besoin de la vue pour coder, nous pourrions être un peu plus multi-tâches et coder tout en… regardant la télé !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌