En 2009, Facebook a lancé un bout de code informatique qui a changé la face du monde: le bouton «Like» («J'aime»). «Like» était une idée née de la collaboration de plusieurs programmeurs et concepteurs, parmi lesquels Leah Pearlman et Justin Rosenstein. Ils avaient émis l'hypothèse que les utilisateurs de Facebook étaient souvent trop occupés pour laisser des commentaires sur les messages de leurs amis, mais que s'il suffisait de cliquer sur un simple bouton… boom, cela débloquerait une foule de messages valorisants. «Les amis pourraient se valider réciproquement avec beaucoup plus de fréquence et de facilité», comme l'expliqua plus tard Pearlman.
Ça a marché. Peut-être même un peu trop bien. Facebook ayant fait du «like» un geste anodin, nous avions déjà cliqué plus d'un billion de fois en 2012. Et si l'opération a bien débloqué un océan de validations sociales, cela a aussi eu de troublants effets secondaires. Après avoir posté une photo, nous nous sommes mis à rafraichir nerveusement la page dans le but de voir le nombre de «j'aime» augmenter. Puis, nous nous sommes demandé pourquoi les autres avaient plus de «j'aime» que nous. Cela nous a poussés à monter en puissance dans nos comportements quotidiens en ligne: en tentant d'être plus drôles, plus caustiques, plus glamour, plus extrêmes.
Le code façonne nos vies. Comme l'entrepreneur Marc Andreessen l'a écrit: «le logiciel est en train de manger le monde». Aujourd'hui, il serait sans doute plus précis de dire qu'il est en train de le digérer.
Culturellement, le code existe dans une sorte de monde souterrain. Nous ressentons concrètement ses effets dans notre réalité de tous les jours, mais nous le voyons rarement, et il est relativement impénétrable pour les non-initiés (cela plaît aux gens de la Silicon Valley, car cela leur permet d'apparaître comme des sortes de sorciers). Nous sommes tout le temps en train d'établir des listes des meilleurs films, des meilleurs jeux, des meilleures séries… des œuvres qui nous influencent. Mais l'on ne voit jamais de liste des lignes de code les plus importantes, alors même qu'elles nous influencent au moins autant.
C'est donc précisément ce qu'a décidé de faire Slate.com, dans un article dont nous vous proposons la traduction. Afin de mettre en lumière ces logiciels qui ont révolutionné le monde, nous avons consulté des informaticiens, des développeurs, des historiens, des responsables politiques et des journalistes. Nous leur avons posé la question suivante: «Quelles lignes de code ont eu, selon vous, une influence majeure, ont transformé nos vies?». Soixante-quinze environ ont répondu avec toutes sortes d'idées, et Slate.com en a sélectionné 36. Ce n'est pas une liste exhaustive. Cela serait impossible compte tenu de la quantité massive de codes influents qui ont été écrits (l'un des mes favoris parmi ceux qui n'ont pas été retenus: Quicksort ou peut-être l'algorithme de Bernoulli d'Ada Lovelace). Comme toutes les listes, elle a pour but de faire réfléchir: de nous aider à comprendre comment le code sous-tend nos vies et de quelle manière les décisions prises par les programmeurs se répercutent ensuite.
Il y a des codes dont vous avez sans doute entendu parler, comme HTML, et d'autres qui sont extrêmement puissants (comme la simulation de Monte-Carlo, qui sert à modéliser des probabilités) mais totalement étrangers au commun des mortels. Certains sont inquiétants, comme le pixel espion qui permet aux publicitaires de savoir si vous avez ouvert un mail, et d'autres renferment carrément des erreurs mortelles, comme l'erreur de conception du Boeing 737 Max.
Une tendance très claire apparaît ici: les codes les plus importants entraînent souvent une modification des comportements en facilitant les choses. Lorsque les concepteurs de logiciels rendent quelque chose plus facile à faire, nous le faisons plus. Le code de 1988 qui a donné naissance à l'Internet Relay Chat (IRC) a permis aux internautes d'alors de converser par écrit en temps réel. Aujourd'hui, c'est un mode de communication qui est partout, des bavardages professionnels incessants de Slack aux joutes de trolling et contre-trolling lors d'un livestream Twitch.
Il n'est pas toujours aisé de voir au départ qu'un code va définir son époque. Souvent, cela commence comme une expérience, un ballon d'essai. En 1961, Spacewar, premier jeu vidéo à être devenu vraiment populaire, a pu sembler être un moyen bien frivole d'utiliser un ordinateur de la taille d'une armoire et qui, à l'époque, coûtait 120.000$ (soit l'équivalent de plus de 1 million de dollars aujourd'hui). Et pourtant, il a inauguré beaucoup des concepts qui ont permis la généralisation des ordinateurs, comme la représentation des données sous forme d'icones et la possibilité de manipuler ces icones à la main avec des contrôleurs.
Les effets d'un code peuvent surprendre tout le monde, y compris les codeurs.
—Clive Thompson, auteur de Coders: The Making of a New Tribe and the Remaking of the World
1725 – Les cartes perforées
Le premier code
La programmation binaire est bien antérieure à ce que nous considérons aujourd'hui comme des ordinateurs. Le Lyonnais Basile Bouchon aurait été la première personne à imaginer un système permettant de contrôler une machine grâce à des trous percés dans du papier: en 1725, il inventa un métier qui tissait ses motifs en fonction des instructions fournies par le papier perforé qui l'alimentait. Un trou correspondait à un «un», l'absence de trou à un «zéro». Les choses ont bien changé depuis, mais la base de la construction d'un code est toujours la même.
—Elena Botella, Slate
1948 – Exécution du premier code moderne
Première utilisation concrète du code informatique et mise en place des modèles informatiques de dévastation nucléaire qui ont façonné la course aux armements de la Guerre froide.
L'ENIAC (Electronic Numerical Integrator And Computer) a été le premier ordinateur électronique programmable. Achevé en 1945, il avait été configuré pour résoudre chaque nouveau problème grâce à l'établissement de connexions entre ses nombreux composants. Lorsqu'une tâche, telle qu'une addition, s'achevait, une impulsion déclenchait la suivante. Mais quelques années plus tard, Klára Dán von Neumann et Nicholas Metropolis, un scientifique de Los Alamos, câblèrent l'ENIAC pour qu'il exécute le premier code moderne jamais soumis à un ordinateur: des centaines d'instructions numériques exécutées par une mémoire morte adressable (les commutateurs de l'ENIAC). Elles simulaient l'explosion de plusieurs projets de bombes atomiques évalués au laboratoire national de Los Alamos, au Nouveau-Mexique, grâce à la méthode de Monte-Carlo, qui permet de simuler un système complexe, étape par étape, pour cartographier de manière répétée la distribution de probabilité des résultats possibles. Von Neumann et Metropolis renvoyèrent aux scientifiques de Los Alamos plus de 20 000 cartes décrivant la progression de neutrons après la détonation simulée d'une ogive. Les descendants éloignés de ce code sont encore utilisés à Los Alamos de nos jours.
—Thomas Haigh, coauteur de ENIAC in Action: Making and Remaking the Modern Computer
1952 – Le compilateur de Grace Hopper
A permis aux ordinateurs de traiter des mots
IF END OF DATA GO TO OPERATION 14 .
Grace Hopper était affectée à la programmation de l'un des premiers ordinateurs lorsqu'elle imagina qu'il serait plus simple d'utiliser pour cela un langage humain. Militaire américaine, qui s'était engagée dans la marine lors de la Seconde Guerre mondiale, Hopper avait conscience que beaucoup de personnes, notamment ses supérieurs, avaient du mal à appréhender le code binaire. Elle imagina que si la programmation pouvait se faire en anglais, la tâche engendrerait moins d'erreurs et deviendrait beaucoup plus accessible aux personnes n'ayant pas un doctorat en mathématiques.
L'idée déclencha quelques railleries, mais dès le début des années 1950, son compilateur était prêt (un compilateur est un ensemble d'instructions qui convertit un code «compréhensible», rédigé en anglais, en un type de code de niveau inférieur, directement traité par la machine). Grâce à cet outil, elle a pu, avec son équipe, développer FLOW-MATIC, le premier langage de programmation à intégrer des mots en anglais reposant sur ce procédé.
—Molly Olmstead, Slate
1961 – Spacewar!
Le premier jeu vidéo largement diffusé
/ this routine handles a non-colliding ship invisibly
/ in hyperspace
hp1, dap hp2
count i ma1, hp2
law hp3 / next step
dac i ml1
law 7
dac i mb1
random
scr 9s
sir 9s
xct hr1
add i mx1
dac i mx1
swap
add i my1
dac i my1
random
scr 9s
sir 9s
xct hr2
dac i mdy
dio i mdx
setup .hpt,3
lac ran
dac i mth
hp4, lac i mth
sma
sub (311040
spa
add (311040
dac i mth
count .hpt,hp4
xct hd2
dac i ma1
hp2, jmp .
Steve Russell via Bitsavers.org
À la fin de 1961, un groupe de jeunes employés, étudiants et associés du MIT (pour beaucoup membres du club de modélisme ferroviaire de l'institut, le Tech Model Railroad Club) ont eu accès tard le soir à un ordinateur DEC PDP-1 récemment offert. Fine fleur de l'informatique civile, le PDP-1 valait 120.000$ (un peu plus de 1 million de dollars aujourd'hui), avait une capacité mémoire de 4 kilomots de 18 bits, les programmes étant sur des rubans papier. En cinq mois seulement, ces programmeurs parvinrent à créer un jeu dans lequel deux joueurs contrôlaient des vaisseaux spatiaux, baptisés needle («aiguille») et wedge («coin») qui se battent l'un contre l'autre tout en tentant d'éviter le puits de gravité d'une étoile au centre de l'écran.
Spacewar! s'est rapidement répandu au sein de la première communauté de hackers, puis il a été distribué par DEC avec chaque PDP-1, préchargé dans la mémoire centrale, ce qui permettait les démonstrations dès l'ordinateur installé. Le programme influença beaucoup la petite communauté de codeurs des années 1960 et inspira des générations entières de créateurs de jeux vidéo. Il existe désormais sous forme d'émulations et il est régulièrement présenté au Computer History Museum sur le dernier PDP-1 opérationnel. Steve Russell, le codeur principal, a déclaré en 2018 devant un groupe du Smithsonian: «Il a plus de 50 ans et nous n'avons jamais reçu de plainte sérieuse. Nous n'avons jamais entendu parler d'un problème avec le jeu. Et le support est toujours disponible si besoin.»
—Arthur Daemmrich, directeur au Lemelson Center for the Study of Invention and Innovation
1965 – L'e-mail
L'e-mail, quoi!
WHENEVER A(1).E.FENCE.OR.A(2).E.FENCE.OR.A(3).E.FENCE
PRFULL.($'R'1INSTRUCTIONS:$)
PRFULL.($ '4MAIL NAME1 NAME2 PROB1 PROG1 PROB2 PROG2 ...$)
PRFULL.($ WHERE '=NAME1 NAME2'= IS THE FILE TO BE MAILED,$)
PRFULL.($ AND '=PROBN PROGN'= ARE DIRECTORIES TO WHICH '8$,
1 $IT IS TO BE SENT.'B$)
CHNCOM.(0)
END OF CONDITIONAL
Page du manuel du CTSS consacrée au courrier électronique
En 1961, des membres du Massachusetts Institute of Technology créèrent un système permettant à plusieurs utilisateurs de se loguer sur un même ordinateur et commencèrent à s'y laisser de petits messages. En 1965, un groupe de codeurs décida de créer un système de commande officiel pour envoyer, recevoir et afficher ces petits courriers numériques. Trouvant la chose un peu frivole, les supérieurs résistèrent tout d'abord au «MAIL», mais l'usage se généralisa (à tel point que dès 1971 apparut le premier spam: un message contre la guerre au Vietnam).
—Clive Thompson
À suivre...