Le début de l’ère de la ligne de commande (1999)
(web.stanford.edu)- Les systèmes d’exploitation étaient autrefois perçus comme du code immatériel difficile à vendre, mais après Microsoft et Apple, ils sont devenus des produits que le grand public choisit et paie, ainsi que des marqueurs d’identité culturelle
- Les GUI ont rendu l’informatique plus accessible en enveloppant octets et fichiers dans des métaphores comme le bureau, les documents et la corbeille, mais lorsque la métaphore masque le fonctionnement réel, les erreurs et les pertes de données deviennent plus opaques
- Windows et MacOS ont créé un marché gigantesque, mais les systèmes d’exploitation fermés et le monopole matériel contrastent avec la croissance des Unix open source et de l’écosystème des PC à bas coût
- Linux expose l’intérieur du système via la ligne de commande, le code source public, les bases de données de bugs publiques et les fichiers de configuration ASCII, mais cette puissance laisse une fatigue geek (Geek fatigue) chez l’utilisateur ordinaire
- BeOS proposait à la fois une nouvelle GUI et un terminal basé sur POSIX, montrant une voie de compromis, mais sur le marché des systèmes d’exploitation, le mindshare et l’écosystème de pilotes comptent autant que la technologie pour survivre
Comment le système d’exploitation est devenu un produit de masse
- Jobs et Wozniak ont créé Apple avec l’idée de vendre des machines de traitement de l’information domestiques, tandis que Gates et Allen ont commercialisé une idée encore plus étrange à l’époque : vendre un système d’exploitation
- Un système d’exploitation n’est qu’une longue suite de 1 et de 0 avec presque aucune matérialité physique, mais Microsoft est devenue une entreprise qui les vendait à grande échelle, à la manière dont Gillette vend des lames de rasoir
- Les nouveaux systèmes d’exploitation sortaient comme des blockbusters hollywoodiens, et même les utilisateurs ordinaires ont fini par comprendre qu’un logiciel pour Macintosh ne s’exécutait pas sous Windows
- Le monopole de Microsoft sur les systèmes d’exploitation est devenu une cible des actions antitrust du département de la Justice américain, et le débat PC-versus-Mac est devenu un enjeu culturel visible jusque dans les relations personnelles
- Dans la métaphore automobile, Microsoft est dépeinte comme une entreprise qui vend le vélo MS-DOS, l’énorme break Windows 95 et le véhicule tout-terrain Windows NT, tandis qu’Apple vend une berline chère au capot scellé
- BeOS serait la Batmobile technologiquement avancée, et Linux ressemble davantage à un char d’assaut distribué gratuitement par des bénévoles
- 90 % des clients vont chez Microsoft, et la plupart du reste choisissent Apple
- Linux est gratuit et puissant, mais les utilisateurs hésitent parce qu’« ils ne savent pas entretenir un char »
Le coût des métaphores créées par la ligne de commande et la GUI
- Aux débuts de l’informatique, utiliser un ordinateur impliquait des procédures formelles passant par le teletype, le ruban perforé, le modem et le mainframe, avec une séparation claire des rôles : l’humain interprétait le sens, l’ordinateur faisait de l’arithmétique sur des bits
- L’interface en ligne de commande (Command Line Interface) vient du mode d’usage du teletype, où l’on saisissait une ligne avant de recevoir une réponse ; ce n’est qu’après l’arrivée de la GUI qu’elle a reçu un nom distinct
- Le Macintosh a popularisé la GUI en 1984 et, avec sa conception centrée sur la souris sans ligne de commande, affichait l’ambition de reléguer la CLI au passé
- La GUI utilise des métaphores comme les fichiers, les documents, les fenêtres, le bureau et la corbeille pour expliquer des structures de données abstraites
- Un fichier HTML, contrairement au résultat visuel d’une page web, ressemble davantage à un télégramme textuel interprété par le navigateur
- Le navigateur est comparé au rôle de Ronald Reagan commentant un match de baseball à partir du contenu du télégramme
- Les métaphores de la GUI sont pratiques, mais incomplètes
- Un « document » désigne dans le monde réel un enregistrement figé, alors qu’un document informatique peut changer d’état avant et après l’enregistrement
- « Enregistrer » revient davantage à supprimer la version précédente et à la remplacer par une nouvelle version contenant l’état actuel de la fenêtre
- Lorsqu’un document disparaît à cause d’un plantage ou d’un problème d’alimentation, l’utilisateur subit le metaphor shear, c’est-à-dire un décalage brutal entre la métaphore et le fonctionnement réel
Microsoft, Apple et la logique économique de l’open source
- Microsoft apparaît ici comme une entreprise qui lance des produits en fonction de la maximisation du rendement pour les actionnaires plutôt que de la finition esthétique ou de l’intégrité du produit
- Même si Windows est peu élégant ou bogué, cela reste une décision rationnelle pour la direction si cela génère plus de revenus
- L’hostilité envers Microsoft mêle une réaction de rejet parce que l’entreprise est « trop puissante » et un mépris parce qu’elle est jugée « ringarde »
- Apple a conservé une stratégie de monopole matériel et contrôlait le matériel sur lequel MacOS pouvait fonctionner, ce qui a entraîné des prix élevés et une architecture fermée
- Cette politique peut améliorer la qualité d’intégration entre matériel, OS et logiciel
- Mais elle découle aussi du fait qu’Apple dépend financièrement des ventes de matériel
- Le Macintosh était une machine difficile à ouvrir et à modifier pour les hackers
- Par nature, un système d’exploitation ressemble davantage à une bibliothèque de code fréquemment utilisé, et un système d’exploitation fermé entre en tension avec cette finalité
- L’interface et le comportement de l’OS doivent être publics pour que les programmeurs puissent les exploiter ; même si l’implémentation reste secrète, du code reproduisant le même comportement peut être réécrit
- ProDOS a réimplémenté des fonctions similaires à celles de MS-DOS
- Sous Linux, WINE reproduit un environnement d’exécution pour les programmes Windows
- Unix a été implémenté séparément par de nombreuses entreprises, dont Sun, Hewlett-Packard, AT&T, Silicon Graphics et IBM
- Avec le temps, les technologies de systèmes d’exploitation tendent à devenir gratuites ; l’activité OS de Microsoft a servi de base au développement de son activité applicative et de sa recherche, mais à long terme elle est traitée comme quelque chose à séparer
- Si Microsoft lie de nouvelles technologies comme le navigateur à l’OS pour défendre sa part de marché, alors lorsque cette part vacille, d’autres activités peuvent être entraînées dans sa chute
La culture système révélée par Linux et BeOS
- Linux est l’une des nombreuses implémentations d’Unix ; il a commencé lorsque Linus Torvalds a entrepris en 1991 d’écrire un noyau Unix fonctionnant sur du matériel compatible PC à l’aide des outils GNU
- Les conditions qui ont rendu Linux possible se résument en trois points
- Richard Stallman et GNU ont fourni des outils de développement gratuits
- Microsoft, en ne faisant pas de matériel et en faisant tourner Windows sur les PC de multiples fabricants, a favorisé le marché des PC à bas coût
- Linus Torvalds a lancé son noyau sur cette base matérielle et logicielle
- Unix est puissant, comme une perceuse « Hole Hawg »
- Il exécute exactement ce qu’on lui demande, mais devient dangereux si l’utilisateur n’anticipe pas suffisamment les résultats
- Là où de petits outils échouent parfois lors d’un essai, le Hole Hawg est plus dangereux précisément parce qu’il exécute littéralement la commande avec force
- Au démarrage, Linux affiche de longues lignes blanches de journaux et de messages d’erreur, et même en cas d’erreur il peut abandonner le processus concerné puis continuer
- Les premières versions de MacOS et des systèmes Microsoft géraient mal plusieurs tâches en parallèle et offraient des capacités de reprise sur erreur limitées
- Linux et les autres systèmes de type Unix sont robustes pour les processus parallèles et la surveillance des erreurs
- Debian expose aux utilisateurs les problèmes et leur résolution via une base de données de bugs publique
- Debian Constitution: http://www.debian.org/devel/constitution
- Debian Bugs: http://www.debian.org/Bugs
- En janvier 1997, après l’envoi par mail d’un problème Debian, cinq réponses contenant des solutions sont arrivées sous 24 heures depuis l’Amérique du Nord, l’Europe et l’Australie
- À l’inverse, une tentative d’installer Windows NT 4.0 sur la même machine a mené à une interruption de l’installation, à une recherche Microsoft Support inutilisable, à une procédure Pay Per Incident qui n’aboutissait pas, puis à des numéros de téléphone injoignables
- Plus tard, la recherche Microsoft Support s’est améliorée au point de permettre de trouver des documents proches de véritables rapports de bugs
- Les informations publiques sur les bugs ont pour effet de forcer Microsoft à reconnaître leur existence
- BeOS est un système d’exploitation conçu à neuf pour éviter le cruft accumulé dans MacOS et Windows
- Be, Inc., fondée par Jean-Louis Gassée, développait depuis le début des années 1990 un nouvel OS incompatible avec les systèmes existants
- Le BeBox était une machine dédiée à BeOS, dotée de deux processeurs et d’indicateurs LED en façade
- BeOS a ensuite été porté sur Macintosh, sur les clones Mac et sur les PC Intel
- BeOS dispose d’une architecture orientée objet, de passage de messages, de multithreading et de multiprocessing, et fournit une ligne de commande via l’application Terminal
- Comme il respecte POSIX, il peut exécuter le compilateur GNU, l’éditeur de liens et les utilitaires GNU
- Tout en utilisant l’éditeur de texte GUI Pe, on peut compter les caractères avec une commande Unix comme
wc
Le mindshare qui fait bouger le marché des systèmes d’exploitation
- Sur le marché des systèmes d’exploitation, la puissance de Microsoft tient moins à un monopole au sens classique qu’à une domination du mindshare
- Linux est gratuit et souvent jugé techniquement supérieur
- BeOS est proposé à un prix purement nominal
- On est loin des anciens monopoles qui contrôlaient physiquement les moyens de production ou de distribution
- Si Microsoft occupe une position si élevée, c’est parce que les fabricants de matériel et de logiciels doivent proposer des produits compatibles Windows pour être pris au sérieux sur le marché
- Les fabricants de matériel écrivent les pilotes Windows, donc Microsoft n’a pas besoin d’écrire elle-même tous les pilotes
- Linux lui oppose une communauté de codeurs compétents qui écrivent des pilotes gratuits
- BeOS dépend de ses propres pilotes et de quelques pilotes tiers
- La GUI est devenue plus qu’une simple interface PC : une méta-interface pour des technologies grand public comme les magnétoscopes, les téléphones mobiles, la télévision par satellite, les caisses enregistreuses, les terminaux bancaires et Lego Mindstorms
- Quand chaque fonction reçoit une GUI, il devient difficile de transformer un petit utilitaire en programme autonome, et les fonctionnalités sont absorbées dans de gros ensembles comme Microsoft Office
- Le
wcd’Unix se suffit comme petit programme en ligne de commande, mais en faire une GUI exige beaucoup de code et de surcharge mémoire - Les fonctions Basic de Microsoft Office pourraient offrir à beaucoup d’utilisateurs une forme de capacité de hacking
- Le
- La puissance de Linux épuise l’utilisateur parce qu’elle exige des fichiers de configuration, une ligne de commande, des options, des scripts et de la lecture de documentation
- La page de manuel de
findfait 11 pages, et une connexion PPP demande un script de numérotation, un fichier d’options et un fichier de secrets - Sans noter à la main les changements de configuration, il est difficile de revenir en arrière
- L’OS idéal ressemble davantage à une combinaison entre une GUI bien conçue et une ligne de commande à laquelle on peut revenir quand c’est nécessaire
- La page de manuel de
- Dans la dernière métaphore, la ligne de commande est une interface offrant assez de liberté et de danger pour créer un univers, tandis qu’une GUI totalement automatisée remplace les choix de la vie par un simple bouton
- La vie comme la technologie sont difficiles et complexes, et aucune interface ne peut changer ce fait
- Si l’on ne veut pas déléguer ses choix, il faut les faire soi-même
2 commentaires
Avis sur Hacker News
Cet essai de Neal Stephenson a été publié pour la première fois en 1999
https://en.m.wikipedia.org/wiki/In_the_Beginning...Was_the...
Le passage qui compare les systèmes d’exploitation à des voitures — par exemple Windows à un break et Linux à un char — a récemment été repris dans l’épisode de Acquired consacré à Microsoft, où Vista était comparé à une Dodge Viper et Windows 7 à la Toyota Camry que les utilisateurs voulaient réellement
https://slashdot.org/story/04/10/20/1518217/neal-stephenson-...
Et pourtant, les gens continuent de ressortir un texte vieux de 25 ans pour se glorifier d’être utilisateurs de Linux. Du genre : « Moi, j’utilise une Hole Hawg ! Je conduis un char ! Je suis un vrai hacker, pas comme eux ! »
À l’inverse, Windows est devenu une voiture avec deux écrans de 27 pouces sur le tableau de bord, une mauvaise expérience utilisateur et de la publicité partout
La comparaison fonctionne assez bien, car la Comet était en réalité le modèle suivant de l’Edsel, simplement sous une autre marque. Le passage de Vista à 7 ressemble à cela
Tout le monde n’a pas besoin de la capacité de transport d’un pick-up, mais si l’on voulait éviter l’encombrement et la consommation, il ne restait qu’une Pinto aux modes de panne dangereux. Plus tard, la Pinto a disparu et a été remplacée par la Ford Taurus : utilisable, sans plus, mais ni amusante ni particulièrement performante, et avec une conception à boîte-pont qui obligeait à démonter tout l’avant pour la réparer en cas de panne
En plus, à cause de la pression de marché exercée par Ford, les concepteurs d’infrastructures avaient créé des routes ou des lieux où l’on ne pouvait pas aller sans l’une de ces trois voitures, et si l’on voulait autre chose, on se faisait même railler
Le grand avantage d’une interface en ligne de commande est qu’elle permet de transmettre des instructions ou des corrections de façon très concise
Si l’on a besoin d’un correctif connu pour un système Linux, il suffit d’envoyer la commande à copier-coller dans le terminal. Mais pour un correctif connu dans un programme graphique, la transmission devient soudain beaucoup plus difficile. Faut-il donner des instructions textuelles du type « cliquez sur le menu hamburger puis choisissez ‘preferences’ », ou joindre plusieurs captures d’écran avec des explications ?
Malheureusement, je ne sais pas comment représenter graphiquement une action de double-clic. C’est un processus long et sujet aux erreurs, utile surtout quand l’application GUI boguée est en pratique un logiciel abandonné
Sinon, il y a de fortes chances que la nouvelle version conserve le même bug ou la même procédure peu intuitive, alors que l’interface graphique aura changé au point d’être méconnaissable. Peut-être parce qu’un manager quelque part a trop lu HN et a décidé que le refactoring côté utilisateur était la priorité absolue
https://support.microsoft.com/en-us/windows/record-steps-to-...
Cela dit, si l’on formule au mieux, dans l’esprit de la fin des années 1990, l’avantage essentiel d’une GUI par rapport à une UI texte ou à une ligne de commande, c’est qu’elle en demande moins à l’utilisateur. La différence entre « voir et cliquer » et « mémoriser et taper » me semble très fondamentale
Je n’ai pas encore vu de formule aussi concise pour résumer le compromis des UI vocales ou des UI à base de LLM
Quelque chose comme
{ select[i]@dropdown:states > click@button:submit }. Le fait qu’un tel système n’existe pas encore ne veut pas dire qu’il est impossible. Il suffit de voir que les LLM, tant appréciés aujourd’hui par l’industrie tech, peuvent faire du « calcul visuel » à partir de tokens, c’est-à-dire de texte, pour constater que toute représentation peut finalement être encodée en texteAlors la fonction d’enregistrement de la GUI
aproduirait un encodage des actions, que l’on pourrait envoyer par e-mail à un collègue qui regarde la GUIbafin qu’il le colleSi l’on veut rester centré sur la GUI, le seul outil dont on dispose réellement, ce sont des commandes textuelles qui décrivent des actions dans l’interface graphique. On ajoute donc une étape intermédiaire. Par exemple, si l’on utilise déjà AppleScript, autant exécuter directement la vraie commande qu’AppleScript essaie de contourner via le système GUI
À relire avec le Unix Haters Handbook https://web.mit.edu/~simsong/www/ugh.pdf
Ce dont nous avons besoin, à mon avis, c’est d’un LispM recréé, d’une station de travail Smalltalk, ou d’une forme où le système d’exploitation serait conçu comme une application unique. Il faudrait un système dont le framework soit ouvert à l’utilisateur jusqu’au niveau le plus bas, entièrement programmable par l’utilisateur final, explorable et totalement intégré.
Pour l’UI, il faudrait une ligne de commande 2D, voire 3D/4D, proche d’une DocUI capable d’inclure des éléments 3D, vidéo et multimédia. Comme cadre conceptuel, il y a http://augmentingcognition.com/assets/Kay1977.pdf.
À propos du passage original disant : « Cette concession a des mécaniciens. Si votre break a un problème, vous pouvez prendre une journée de congé, l’amener ici, écouter de la musique d’ascenseur pendant quelques heures dans la salle d’attente et payer pour le faire réparer », il me vient une réplique façon mégaphone : « Si vous recevez un char gratuit, des bénévoles viendront chez vous pendant que vous dormez pour le réparer gratuitement ! »
Dans les faits, est-ce qu’une distribution Linux a réellement proposé ce genre de support à un moment donné ? Probablement sous la forme d’un contributeur du projet se connectant en ssh à ma machine.
Mon impression, c’est que l’argument ressemblait plutôt à : « Nous avons un bâtiment entier rempli de manuels techniques décrivant chaque boulon et chaque vis du char, et nous pouvons vous les copier gratuitement. Avec un effort raisonnable, si vous les lisez tous et les mémorisez, vous pourrez réparer et modifier le char vous-même. Vous n’aurez plus à dépendre de concessionnaires automobiles véreux. Si vous avez besoin d’aide, venez à la réunion mensuelle de la communauté et parlez avec des gens aussi obsédés que vous par les chars. Mais seulement si vous êtes suffisamment obsédé par les chars, et seulement après avoir lu le manuel. »
Bien sûr, c’était il y a des décennies, et la situation s’est nettement améliorée aujourd’hui.
On voit aussi que SuSE existe encore, et on peut deviner comment Canonical finance ses frais d’exploitation. C’est du support payant. Le support Linux est un gros business, et c’est ce qui maintient en vie les distributions populaires.
Autrefois, si un logiciel commercial ne fonctionnait pas sur mon ordinateur, il fallait acheter une nouvelle version, et les patchs gratuits étaient rares.
La réaction normale serait plutôt : « Ne t’approche pas de chez moi, espèce de type bizarre ! » À moins qu’une confiance importante ne se soit construite, je ne laisserais pas quelqu’un entrer chez moi pendant que je dors.
La réaction réellement courante aurait plutôt été : « C’est open source, donc tu peux réparer toi-même tout ce que tu veux sur ton char. » Si tu as besoin d’un nouveau module pour le connecter à un autre appareil, tu le construis toi-même, comme si ce n’était rien.
Si le navigateur gère mal les longues lignes, on peut le lire ainsi :
wget -O - [https://web.stanford.edu/class/cs81n/command.txt](<https://web.stanford.edu/class/cs81n/command.txt>) | nroff | lessMon passage préféré pour décrire les sentiments des utilisateurs Unix/Linux envers Windows est l’expression le Hole Hawg des systèmes d’exploitation.
Cet essai devrait être une lecture obligatoire pour tous les étudiants en informatique et pour quiconque veut se qualifier de hacker.
J’ai lu ce texte pendant ma cérémonie de remise de diplôme universitaire. Je l’avais caché dans les plis de ma toge, ce qui était l’action la plus appropriée que je pouvais faire à ce moment-là.
J’ai aussitôt changé l’orientation de ma vie pour me concentrer sur les idées présentées dans ce texte. L’objectif était de faire bouger le monde avec la ligne de commande, et j’y suis presque parvenu.
Il faut passer à Command Table.
Je viens de finir d’écrire une interface en ligne de commande pour LLM presque entièrement en Bash[1].
C’est précisément l’argument de ce texte qui me fait soutenir l’avenir des LLM. Les gens dialoguent avec les LLM comme ils dialogueraient avec un shell en ligne de commande, et tout repose sur du texte brut. C’est aussi la philosophie Unix. Si j’avais lu ce texte avant d’écrire le client CLI, j’aurais sans doute eu davantage d’idées.
[1]: https://github.com/simonmysun/ell
Est-ce que ce texte pourrait recevoir le prix de l’article le plus souvent republié sur HN ? Il est remonté en moyenne deux fois par an pendant 17 ans.
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
Les variations de titre et d’URL rendent aussi l’agrégation instable.
J’ai ce livre en couverture souple. Je l’ai probablement lu avant le passage au millénaire.
En tant qu’amateur de BeOS, j’ai particulièrement aimé la référence à la Batmobile.
The hole hawg.. qu’est-ce que c’est ?