IBM ne voulait pas que Microsoft utilise la touche Tab pour passer d’un champ à l’autre dans les boîtes de dialogue
(devblogs.microsoft.com)- À l’époque où Microsoft et IBM développaient OS/2 ensemble, le choix de la touche à utiliser pour passer d’un champ à l’autre dans une boîte de dialogue est devenu un point de friction révélant des différences de structure organisationnelle
- Un employé de Microsoft affecté aux bureaux d’IBM à Boca Raton a décidé d’utiliser la touche TAB pour le déplacement entre les champs, et IBM a exigé que la question soit remontée à son manager à Redmond
- Le manager de Microsoft a répondu que sa présence à Boca avait précisément pour but de prendre ce type de décision à sa place, et le message transmis à IBM a été formulé de manière plus corporate : « Microsoft soutient l’utilisation de la touche TAB à cette fin »
- IBM ne s’en est pas contenté et a fait remonter le sujet à plusieurs niveaux dans sa hiérarchie, affirmant qu’un vice-président situé environ sept échelons au-dessus du programmeur s’opposait fermement à l’usage de TAB pour cet usage, et a demandé une validation d’un responsable de rang équivalent chez Microsoft
- L’employé de Microsoft a répondu : « La mère de Bill Gates ne s’intéresse pas à la touche TAB », après quoi la discussion semble s’être arrêtée, et TAB est restée en place
Différences de structure organisationnelle révélées par la collaboration sur OS/2
- À l’époque où Microsoft et IBM développaient OS/2 ensemble, des frictions culturelles existaient : côté Microsoft, on estimait que les collègues d’IBM étaient pris dans une bureaucratie inutile, tandis que côté IBM, on voyait les employés de Microsoft comme des hackers indisciplinés
- L’un des points de friction concernait la structure organisationnelle, et la question de savoir quelle touche utiliser pour passer d’un champ à l’autre dans une boîte de dialogue est devenue un sujet de débat
- Un employé de Microsoft était affecté aux bureaux d’IBM à Boca Raton, en Floride, et a décidé d’utiliser la touche TAB pour le déplacement entre les champs
- IBM n’était pas satisfait de cette décision et a demandé que la question soit remontée à son manager à Redmond
Délégation chez Microsoft et procédure d’escalade chez IBM
- Le manager de Microsoft a répondu : « Si vous êtes à Boca, c’est précisément pour prendre ce genre de décisions afin que je n’aie pas à être à Boca »
- Avant d’être transmise à IBM, cette réponse a été reformulée dans un style plus corporate en : « Microsoft soutient l’utilisation de TAB à cette fin »
- Côté IBM, cela n’a pas suffi, et le sujet a été remonté à plusieurs niveaux dans la hiérarchie
- IBM a expliqué qu’un vice-président situé environ sept niveaux au-dessus du programmeur s’opposait catégoriquement à l’usage de TAB pour cet usage, et a demandé une confirmation d’un responsable de rang équivalent chez Microsoft
Fin de la controverse
- L’employé de Microsoft a répondu : « La mère de Bill Gates ne s’intéresse pas à la touche TAB »
- Après cette réponse, la discussion semble avoir pris fin, et la touche TAB est restée telle quelle
- L’article se conclut sur une plaisanterie : aux États-Unis, dimanche prochain est la fête des mères, mais il n’est pas recommandé de demander à sa mère son avis sur la touche TAB
- Il est possible que l’opinion que Microsoft et IBM avaient l’une de l’autre ait été, dans les deux cas, au moins en partie justifiée
1 commentaires
Commentaires sur Hacker News
IBM était légendairement suradministrée
Quelqu’un avec qui j’ai travaillé avait fait un stage d’été au milieu des années 1990 chez IBM à Londres, dans ce qui correspondrait aujourd’hui à de l’ingénierie QA, et racontait qu’à l’époque la culture du costume-cravate obligatoire commençait à évoluer, si bien que les stagiaires avaient demandé à pouvoir s’habiller de façon décontractée le vendredi seulement
Comme ils travaillaient enfermés au fond d’un bureau sans jamais voir de clients, cela ne semblait pas être une grosse affaire, mais la réponse n’est arrivée que plusieurs mois plus tard, juste avant la fin du stage, après que la demande eut remonté les quatre niveaux de validation du bureau de Londres puis traversé jusqu’au siège américain, jusqu’au bureau d’un vice-président
Chaque niveau a apparemment passé des semaines à se demander s’il avait le pouvoir de trancher une question aussi grave, puis la réponse est redescendue pas à pas par le même circuit, a retraversé l’Atlantique et est arrivée aux stagiaires londoniens en costume alors qu’il ne leur restait plus que quelques jours de stage
La réponse était non
Puis, huit mois plus tard, les RH d’IBM m’ont appelé pour me proposer un entretien le jeudi suivant ; quand j’ai dit que cela ne m’intéressait plus, ils ont paru totalement déconcertés
Je ne sais pas ce qu’ils avaient en tête, mais ils avaient un ego démesuré sans même offrir un bon salaire
L’ambiance était assez informelle ; je ne cherche pas à nier le récit précédent, juste à apporter un autre point de vue
J’avais demandé une exception à la clause contractuelle qui donnait à IBM un droit prioritaire sur la propriété intellectuelle créée en dehors des heures de travail
Je travaillais seulement au centre d’assistance technique, sans accès à des informations exclusives d’IBM, sans rôle de développement, donc il n’y avait absolument aucun risque de ce point de vue
En pratique, toutes les personnes que je pouvais rencontrer physiquement trouvaient la demande parfaitement raisonnable, mais il a fallu six semaines pour recevoir un premier refus, puis deux semaines de plus pendant que mon manager direct essayait de faire médiation, et la réponse est restée négative
Cela semblait être remonté jusqu’aux États-Unis le long de la chaîne hiérarchique, bifurqué vers le juridique, puis redescendu ; j’ai fini par quitter l’entreprise pour éviter le risque qu’IBM revendique des droits sur un petit projet logiciel fait avec un ami
Autre exemple : les formulaires RH avaient été rédigés au début des années 1980 puis numérisés dans les années 2000, et notre équipe, qui n’était pas en contact avec les clients, était très diverse
Une tentative avait été faite pour mettre à jour les formulaires afin qu’ils reconnaissent d’autres combinaisons de genre et de pronoms ; l’examen a pris environ douze semaines, puis cela a apparemment été refusé parce que personne ne voulait identifier qui devait modifier le formulaire
Il y avait beaucoup de personnes LGBT dans l’équipe et leur fidélisation semblait importante, mais cela a quand même été catégoriquement refusé
La formation contre le harcèlement sexuel était fournie sur cassette en 2010, et comme c’était indiqué comme une « version mise à jour », on pouvait se demander si la précédente n’était pas sur disque vinyle
Ce qui rend cette histoire étrange, c’est qu’IBM utilisait une nomenclature clavier cohérente sur plusieurs produits, et que les terminaux mainframe de la famille 3270 déplaçaient le curseur vers le champ suivant avec la touche Tab située à l’emplacement de la touche Tab moderne
https://www.bitsavers.org/pdf/ibm/3278/GA27-2890-4_3278_Disp... page 73 du PDF
D’ailleurs, sur les terminaux IBM, la navigation entre champs était suffisamment importante pour qu’il y ait aussi une touche dédiée Back Tab de l’autre côté de la touche Tab
Sur le PC IBM d’origine, les deux fonctions ont été fusionnées en une seule touche ; c’est pourquoi, sur les claviers PC classiques, la touche Tab porte à la fois le symbole de tabulation avant et arrière, le symbole de tabulation arrière étant en haut pour indiquer qu’il faut appuyer sur Shift
En complément, les terminaux de la famille 5250 parlaient de « Field Advance » et « Field Backspace » plutôt que de Tab/Back Tab, mais les symboles et l’emplacement des touches étaient globalement les mêmes que sur les 3270
Référence : https://www.bitsavers.org/pdf/ibm/5291/GA21-9409-0_5291_Disp...
Regardez la touche « Next field » à gauche et sa correspondante « Previous field » à droite
L’IBM 3270 était un appareil de saisie de formulaires : le mainframe envoyait au terminal un formulaire avec des champs vides, et l’utilisateur remplissait les blancs
Le matériel du terminal empêchait d’écraser les parties fixes du formulaire et appliquait aussi des contraintes comme les champs numériques ; tout cela était géré par le terminal lui-même
Une fois le formulaire rempli, l’utilisateur appuyait sur ENTER, et le formulaire complet était transmis au mainframe comme une transaction unique
Cette approche permettait à un seul mainframe de gérer un nombre énorme de terminaux, et les utilisateurs pouvaient taper rapidement sans latence perceptible, même sans regarder
Le PC n’avait pas ce modèle d’usage, et les gens du monde PC pensaient plutôt « machine à écrire »
L’un des premiers terminaux pour ordinateur domestique s’appelait même « TV Typewriter »
Les formulaires web ont quelque chose de ce modèle, mais de façon moins cohérente
[1] https://sharktastica.co.uk/resources/images/model_bs/themk_1...
Mais ce n’est qu’une supposition
Dans les années 1980 chez IBM, il existait un corps technique senior appelé « Systems Engineers », dont le métier entier consistait à commenter les avantages et inconvénients de systèmes donnés
Pas à les concevoir, les déboguer ou les expliquer ; simplement à juger que « vous faites fausse route »
Pour l’équipe Microsoft, ils avaient l’air désespérément corporatistes, mais au sein d’IBM, les gens de Boca étaient vus comme des « rebelles », et en réalité la majeure partie d’IBM ignorait même leur existence
À l’échelle temporelle d’IBM, tout cela s’est monté presque du jour au lendemain et avançait à une vitesse folle ; c’est Thomas Watson Jr. qui avait imposé l’idée de cette skunkworks contre l’avis de ses subordonnés
Boca avait donc très peu de la supervision, coordination et maîtrise qu’un projet de cette taille aurait normalement eues
Au début, Boca fonctionnait en dehors de la chaîne de reporting normale, au point qu’en essayant d’obtenir des technologies ou des composants auprès d’autres divisions IBM, ils devaient parfois expliquer qu’ils faisaient bel et bien partie d’IBM
L’une était le Return habituel d’aujourd’hui, qui faisait seulement passer au champ suivant sans soumettre le formulaire
L’autre était une touche Enter à l’emplacement actuel du Ctrl droit, et c’était elle qui validait le formulaire
Donc IBM ne s’opposait peut-être pas à la touche Tab en elle-même, mais au fait d’utiliser comme touche de soumission du formulaire la touche Return, que les utilisateurs de 3270 s’attendaient à voir passer au champ suivant
Beaucoup de programmes DOS fonctionnaient aussi ainsi : appuyer sur Return faisait passer au champ suivant plutôt que soumettre le formulaire, et c’était une des habitudes à prendre sous Windows
CUA indique explicitement que Tab et Backtab servent à se déplacer entre les champs
IBM se serait donc opposée à sa propre norme en faisant remonter le sujet à travers sept niveaux hiérarchiques : https://archive.org/details/ibmsj2703E/page/n13/mode/2up
En tant que partisan de Tab, je ne cherche pas à lancer une polémique, mais j’avais autrefois demandé à Brendan Eich sur Twitter pourquoi il préférait les espaces
Sa réponse était plus réfléchie que je ne l’aurais imaginé
Dans les systèmes d’exploitation modernes et les interfaces utilisateur, le Tab est lui-même intercepté, ce qui rend compliquée la saisie d’un vrai caractère de tabulation, en particulier dans des contextes comme le navigateur
Je préfère toujours Tab et je suis développeur Go, mais sur ce point il avait complètement raison : c’est vraiment pénible
Il suffit d’essayer d’insérer un caractère tabulation dans la zone de texte de Hacker News pour s’en rendre compte
Je comprends l’argument jusqu’à un certain point, mais si l’on écrit dans la zone de texte de HN du code où la distinction tabulations/espaces est importante, il y a déjà quelque chose qui cloche
Un éditeur de code, lui, gère correctement la touche Tab
Pour Enter, il existe au moins une certaine convention avec Shift+Enter, Alt+Enter, Cmd+Enter, etc., mais il reste rageant qu’il n’y ait presque aucun moyen universel d’entrer un caractère tabulation à l’échelle du système
Shift/Alt/Ctrl+Tab sont eux aussi généralement déjà capturés par d’autres actions
Cela dit, tabulation et saut de ligne ne s’appliquent pas à tous les contextes
Il peut aussi être pertinent d’avoir une touche ou une combinaison qui, comme ^V dans certains programmes, permette d’entrer des caractères de contrôle comme données plutôt que comme commandes
C’est le genre de chose à envisager lorsqu’on conçoit un nouvel ordinateur qui n’a pas besoin de ressembler aux ordinateurs existants ; j’y ai déjà réfléchi et je pourrais réellement le prendre en compte
La touche Tab avait une fonction d’origine ; elle a été détournée, et cela a rendu son usage réel plus difficile
Ce n’est pas si différent de la disparition de la touche Escape quand Apple a introduit la Touch Bar
L’utilisateur moyen n’en a peut-être presque jamais besoin, mais le développeur moyen a du mal à se passer longtemps de la fonction d’origine de cette touche
J’avais déjà entendu dire qu’autrefois la touche de tabulation pouvait être rendue différemment selon les systèmes, donc que les espaces, toujours affichés de la même manière, étaient plus sûrs
Est-ce que c’est ce qu’il voulait dire ?
Excellent article, mais je me demande toujours pourquoi IBM s’opposait à cet usage de la touche Tab
Est-ce qu’ils ne voulaient pas qu’elle soit à la fois un caractère de saisie et un caractère de contrôle ?
Autrement dit, dans certains champs on peut entrer une tabulation et dans d’autres non, sans que ce soit immédiatement clair ?
Même en 2026, je peux encore comprendre ce point de vue
D’abord à cause de la rupture de compatibilité avec DOS
Les programmes DOS utilisaient Enter, et le pavé numérique avait aussi une touche Enter, ce qui permettait de saisir des données numériques d’une seule main
On pouvait garder la main gauche sur le document papier et saisir de la main droite, et les gens devenaient très rapides ainsi
Ce schéma subsiste dans certains logiciels comme Excel
Beaucoup de clients détestaient devoir poser les deux mains sur le clavier, et nombre de nos programmes autorisaient une correspondance Enter=Tab
Ce n’est pas le « nom » de la touche qui compte, mais son emplacement
Le double usage d’une touche n’est qu’une gêne que l’on accepte : parfois elle sert à naviguer, parfois à saisir un espace
Enter aurait posé le même problème
La solution de loin la meilleure aurait été d’ajouter une nouvelle touche au clavier, idéalement sur le pavé numérique
Beaucoup de nouvelles touches sont apparues à cette époque ; avec le recul, c’est là qu’il aurait fallu ajouter une touche « suivant »
Dans cet environnement, il existe deux rôles parfaitement logiques et intuitifs pour Tab, et ils entrent en conflit
Le même problème se pose encore plus souvent avec la touche Enter, et aujourd’hui encore nous mémorisons des règles assez compliquées sur le fait de savoir si ctrl+crlf insère un saut de ligne ou envoie le message, et ce que font crlf seul et shift+crlf respectivement
Dans l’éditeur de HN, shift+crlf et crlf seul produisent un saut de ligne, et ctrl+crlf ne fait rien
Mais ailleurs, ctrl+crlf déclenche l’envoi d’un formulaire ou d’un message, shift+crlf insère un saut de ligne brut, et crlf seul peut faire l’un, l’autre, ou ni l’un ni l’autre
Ce sont les raccourcis les plus courants, mais j’ai aussi vu des exceptions et des inversions, y compris des cas où shift+crlf envoie le formulaire et ctrl+crlf insère le saut de ligne brut
Tout cela est réellement pénible et crée beaucoup de friction pour l’utilisateur ; pendant un temps, le guide de style Microsoft était considéré comme une référence majeure en matière de bonnes pratiques, même si cela paraîtra peut-être ironique aujourd’hui
Gérer une organisation avec d’innombrables pièces mobiles et fabriquer rapidement quelque chose pour des utilisateurs, ce sont manifestement des préoccupations très différentes
J’y vois plutôt une personne prise dans la bureaucratie IBM qui s’est interposée et a bloqué les choses, comme illustration d’une différence de culture
Après tout, l’article lui-même parle justement de cette différence culturelle
IBM est aussi la raison pour laquelle MS-DOS ne prend pas en charge « - » pour les options et pour laquelle on n’a pas fini avec des périphériques dans un répertoire « \DEV » sur tous les lecteurs
La prise en charge de « / » comme séparateur de chemin, elle, a survécu
Beaucoup de gens chez Microsoft utilisaient Xenix et aimaient Unix, et les tout premiers DOS avaient des options config.sys comme SWITCHCHAR et AVAILDEV à cet effet
Mais, si je comprends bien, IBM s’y est fortement opposée et a exigé leur suppression
Ce qui est particulièrement irritant avec le problème DEV, c’est que DOS 1 n’avait pas de répertoires, donc il ne pouvait pas vraiment y avoir de problème de compatibilité
Résultat : DOS/Windows reste coincé avec l’hypothèse que les fichiers de périphérique existent dans chaque répertoire, ce qui empêche encore de créer des fichiers nommés « CON » ou « COM1 »
Ils se sont simplement abstenus de documenter pendant des années les appels nécessaires pour l’utiliser
Je trouvais cela étrange parce que, dans le monde mainframe 3270, de mémoire, la touche Tab servait bien à passer d’un champ à l’autre
J’ai retrouvé le PDF de l’Operator's Guide
Voir https://news.ycombinator.com/item?id=48028227
Utiliser Tab était quasiment une seconde nature, et quand je suis passé aux applications GUI, c’était particulièrement agaçant dans les applications Visual Basic où l’ordre de tabulation était mal défini
Je crois simplement qu’il y avait aussi des touches de fonction réservées à cet usage
Je n’ai jamais utilisé d’AS/400, mais je crois qu’il existait une touche distincte de Field Exit
Le passage disant que « les gens de Microsoft voyaient leurs homologues d’IBM comme des bureaucrates inutiles, tandis que les gens d’IBM voyaient ceux de Microsoft comme des hackers sans discipline » m’a beaucoup fait rire
Je travaille chez MSFT, et il semble que le Microsoft de l’époque était très différent de l’entreprise actuelle
Aujourd’hui, avec les réunions sans fin, les injonctions à l’IA, les mises en scène autour des promotions, mes collègues et moi avons vraiment l’impression d’être pris dans une bureaucratie inutile
La rémunération est correcte, mais la bureaucratie ronge l’âme
Il faudrait brancher une manette de jeu sur toutes les machines pour se déplacer entre les champs avec les flèches directionnelles, utiliser le bouton « A » pour remonter d’un niveau dans les menus hiérarchiques, et le bouton « B » pour entrer dans les sous-menus
Ainsi, pour passer d’un champ à l’autre, il suffirait de saisir les données, de lâcher le clavier, de prendre la manette, d’appuyer à droite ou à gauche, puis de reposer les mains sur le clavier
Les gains de productivité seraient absolument gigantesques
Le but est de permettre de contrôler naturellement au gamepad des jeux vidéo qui utilisent des contrôles standard du système d’exploitation
Il faut absolument la breveter
En attendant, nous devrons nous contenter de la solution de repli : la souris
Je suis utilisateur Mac depuis plus de 30 ans, mais j’adore vraiment les récits historiques de Raymond Chen
Je connais folklore.org, mais j’aimerais qu’il existe quelque chose d’équivalent en interne chez Apple
Hélas, cela ne fait pas partie de la culture Apple
J’étais stagiaire d’été en 1992 dans l’équipe System Software, et l’un de mes projets consistait à améliorer une fonction du Disk Initialization Package qui marquait les blocs défectueux détectés pendant l’initialisation d’un disque
La fonction existante marchait, mais elle était très lente, n’affichait aucune progression et ne pouvait pas être annulée
La partie la plus délicate était l’interface utilisateur
J’avais beaucoup amélioré la vitesse, mais comme il était impossible de savoir combien de temps durerait l’ensemble du processus, toutes les heuristiques destinées à afficher le temps restant étaient catastrophiques
À quelques bureaux de là, j’ai vu quelqu’un dont l’intitulé de poste était « User Interface » et je me suis demandé s’il pourrait m’aider ; je lui ai demandé s’il avait un moment, puis je me suis assis avec Bill Fernandez, employé numéro 4 d’Apple et l’homme qui avait présenté les deux Steve l’un à l’autre, pour réfléchir au problème
C’était, avec mon manager, la personne la plus bienveillante que j’aie rencontrée cet été-là ; il a immédiatement compris le problème dans son ensemble et a proposé une excellente solution
Il a suggéré d’abandonner l’estimation du temps restant au profit d’une barre de progression indéterminée qui avançait à chaque piste du disque testée
Cela a bien fonctionné, les gens ont apprécié, et la fonctionnalité a été intégrée dans une mise à jour mineure après la version 7.1
Ce n’est pas aussi étonnant que les histoires de Raymond, mais c’est déjà un début
Je trouve admirable que toutes les époques aient été remplies de conflits sur presque tous les détails
Les touches, leur disposition, leur forme, leur signification, tout y passait
Et pourtant, aujourd’hui, plus personne ne semble vraiment se soucier de ces choses, ce qui est à la fois très étrange et assez drôle