David Madore's WebLog: Mon autobiographie « informatique »

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]

↓Entry #1952 [older| permalink|newer] / ↓Entrée #1952 [précédente| permalien|suivante] ↓

(jeudi)

Mon autobiographie « informatique »

Puisqu'en réponse à la note en bas de texte de l'entrée précédente on me dit que ce n'est pas problématique de parler sur un blog de ce dont tout le monde parle déjà, la mort d'un grand génie de l'informatique, si on en parle d'un point de vue personnel, je me lance, profitant d'un peu de calme avant que, sans doute, tous les journaux en fassent leur une et que M. Obama prononce un discours saluant un grand visionnaire américain qui a changé le monde, puisqu'il n'y a aucun doute que le langage C et le système Unix ont eu beaucoup plus d'importance et d'influence que les produits Apple.

Bref, voici une petite histoire (que je recopie très largement d'un truc posté ailleurs il y a quelques années) de la façon dont j'ai été mis en contact avec l'informatique en général, et avec Unix en particulier (bon, le rapport avec Unix est très ténu, c'est juste un prétexte pour poster ça) :

Un jour, je pense que c'était en '81, donc j'avais juste cinq ans, mon père m'a emmené avec lui à l'IHP (à l'époque ça hébergeait divers labos qui devaient dépendre administrativement de Paris VI, et notamment celui où mon père bossait depuis sa thèse, à une brève excursion à Luminy près). Il devait parler avec quelqu'un donc on m'a laissé dans la grande salle commune (donnant sur la rue Pierre et Marie Curie — mais de toute façon tout l'intérieur a été complètement transformé maintenant, il n'y a plus rien de ce qui était là autrefois). Il y avait un PET de Commodore, alors on m'a dit de faire joujou avec l'ordinateur. Mon père a parlé pendant très longtemps, et s'est rendu compte qu'il m'avait complètement oublié : un peu inquiet, il est venu me retrouver, et moi je n'avais pas vu le temps passer, j'avais pianoté sur le clavier pendant des heures. Pour éviter qu'on me prenne pour un génie précoce, je précise que je ne savais à peine lire, et je ne me suis sûrement pas mis à programmer : j'ai juste joué à regarder ce que les touches pouvaient produire comme effet, à déplacer le curseur et à afficher des choses partout sur l'écran. Il faut dire que le clavier du PET avait quelque chose du Space Cadet, il y avait toutes sortes de choses qu'une même touche pouvait produire, et notamment des petits dessins (block drawing, je veux dire) sous les touches.

Cette révélation du premier contact avec l'informatique a eu pour conséquence que mon père a décidé d'acheter un micro-ordinateur (pour moi et lui, ma mère n'étant absolument pas intéressée — mais pour moi il estimait que ce serait un bon achat éducatif). Il a dû passer un bon moment à prospecter et à discuter avec moi pour savoir ce qu'on allait acheter. En attendant j'ai dû revenir plusieurs fois sur le PET de l'IHP pour programmer mes premiers trucs en BASIC — à peu près du niveau de 10 PRINT "BONJOUR"␊20 GOTO 10 ou des choses de ce style.

Mon père lui-même avait programmé dans sa jeunesse, d'ailleurs. Il a même travaillé un été chez Bull quand il venait de s'installer en France, et avant cela il avait un peu travaillé autour des ordinateurs à Toronto, programmé en langage machine et/ou en Fortran sur un IBM 709 ou quelque chose de ce genre.

Nous avons acheté un New Brain, donc, vers '82 (je précise que toutes les dates sont un peu approximative, j'essaie de procéder par recoupement avec les choses que je sais avec certitude mais ce n'est pas toujours facile), et ça a été mon premier ordinateur. Le New Brain : un truc intermédiaire entre un micro-ordinateur et une grosse calculatrice, qui avait un écran intégré de une ligne (c'est ce qui nous a séduits ; on n'a acheté un écran cathodique — vert et noir — qu'un peu plus tard). Mon père s'est mis en tête de programmer un traitement de texte, d'ailleurs, plus tard (peut-être à notre retour du Canada) nous avons acheté une imprimante, mais ça n'a jamais abouti. Il a aussi écrit des jeux éducatifs pour moi, par exemple il y en avait un pour m'apprendre à faire des opérations arithmétiques, j'ai dû pas mal jouer à ça quand j'étais au CP. Je me rappelle aussi un jeu de labyrinthe (on dessinait un labyrinthe par des blocs ou des espaces, qui pouvait dépasser la taille de l'écran, et ensuite on devait le résoudre), qui pouvait aussi servir de logiciel de dessin primitif (en ASCII-art, quoi, avec des block drawings), qui m'a fasciné sans fin.

En même temps, j'ai commencé à apprendre un peu à programmer en BASIC : plus que les programmes de 2 lignes que je faisais sur le PET, mais quand même des choses très simples. Je ne me rappelle plus bien ce que j'ai pu programmer, en fait. Ah, si, il y avait un mode « graphique » et je faisais des programmes qui traçaient des étoiles et des trucs de ce genre.

Tout cela était assez fastidieux, il fallait sauvegarder et lire les programmes sur des bandes magnétiques — le New Brain lui-même n'avait pas de lecteur de bande, on attachait un lecteur de cassette standard par trois prises jack (micro, haut-parleur, et « contrôle »), et, bien sûr, trouver l'emplacement du programme sur la bande n'était guère facile.

De l'été '84 à l'été '85 nous avons habité au Canada. C'est là, à l'Université de Toronto, que mon père a commencé à utiliser TeX, sur des systèmes VAX/VMS. J'ai été un peu intéressé, mais seulement un peu. J'ai quand même écrit mon premier fichier TeX à ce moment-là : les noms de divers copains et copines de ma classe en police \bf que j'ai ensuite imprimés et découpés pour leur donner (à l'époque, un truc imprimé par une imprimante laser ça avait vraiment, vraiment de la gueule). Pendant une partie du temps, nous avons aussi eu chez nous à Toronto un Radio Shack TRS-80 (avec des disquettes de 7 pouces — je dois encore les avoir dans un tiroir quelque part), mais il n'est pas resté longtemps.

Autour de mon séjour au Canada, je ne sais plus si c'était un peu avant ou un peu après, un de nos voisins (dans la résidence « Chevreuse » ou nous habitions à Orsay) a acheté un Thomson TO7, avec, tenez-vous bien, un écran couleur, et un crayon optique — et peut-être même du son (bref, un vrai multimédia). Pour moi ça a été A Brave New World, et j'ai passé tout mon temps fourré chez lui, à découvrir à toute vitesse comment exploiter cette merveilleuse machine.

Au retour du Canada, mon père a cessé de travailler à l'IHP — il faut dire qu'aller tout les jours à Paris ne lui convenait plus trop, et il a pris un bureau à l'École Polytechnique. Il m'y a emmené régulièrement entre fin '85 et mi '87, et c'est là que j'ai découvert les ordinateurs « modernes » : les PC et les Macintosh.

Les PC — des « clones », comme on disait alors, bien sûr, parce que les vrais PC d'IBM étaient hors de prix — étaient des Olivetti. J'ai appris à toute vitesse à me servir de MS-DOS. J'ai aussi beaucoup, mais vraiment beaucoup, joué au jeu King's Quest (le 1er de la série — le vrai et authentique) ; et un peu à Flight Simulator, aussi (les toute premières versions). Et enfin, j'ai commencé à apprendre à programmer en Turbo Pascal de Borland, à l'époque la version 3 (dont l'éditeur ne connaissait que les séquences de contrôle ridicules héritées de WordStar ou un truc de ce genre : on a mis beaucoup de temps à savoir que pour quitter il fallait taper un truc comme ^K^D) ; sans doc, bien sûr (ni pour l'éditeur ni pour le langage, que j'ai appris par imitation), et je ne suis pas allé très loin (surtout que j'ai été déçu de voir à quel point il était difficile de faire du graphisme — il y avait le choix entre Turbo Graphix, qui était horriblement compliqué et inutilisable, et GRAPH.P dont je n'ai appris l'existence que trop tard). Pour les Macintosh, c'était surtout avec MacPaint que je jouais, et aussi à triturer l'interface graphique dans tous les sens pour voir ce qu'on pouvait faire avec. Notons au passage que tant les PC que les Mac étaient en noir et blanc (enfin, pour les PC c'était plutôt noir et orange, en fait), du coup, on n'avait pas vraiment progressé depuis le TO7 ; ah, si, il devait y avoir un ou deux écrans couleurs sur des PC, quand même.

En '87, mes parents et moi avons déménagé pour aller à l'autre bout d'Orsay. C'est important parce que je me suis beaucoup lié d'amitié avec le fils aîné de nos nouveaux voisins, Sébastien : ils n'avaient pas un TO7, mais ils avaient deux PC, dont un dans la chambre de Sébastien.

Du coup, mon père a reconnu qu'il serait bien de nous acheter un PC (les Macs étaient trop chers, parce qu'il n'y avait pas de « clônes »), et je suis devenu vraiment fanatique du PC. Ce premier PC, un bon vieux 8088 à 4.77MHz avec 640ko de RAM, acheté fin '87 je pense, a d'ailleurs longtemps plus tard encombré une salle à l'ENS parce qu'un copain a voulu essayer d'installer Minix dessus. Au début il n'y avait qu'un lecteur de disquette, pas de disque dur, une carte CGA et l'écran monochrome qui avait servi au New Brain.

[Capture d'écran d'un jeu en mode texte]Et ce fut ma véritable plongée dans le PC : des jeux en BASIC (je crois que c'était GW-BASIC), des vrais jeux piratés (ah, les grandes discussions sur le choix du copieur de jeux protégés, entre copywrite et copy00 et autres), et toutes sortes de programmes inutiles et débiles. Je ne compte plus le nombre de jeux idiots que j'ai écrits où on était représenté par un personnage souriant (le code \001 du jeu de caractères cp437 CGA/PC, une sorte de ☺) se promenant dans un monde de trèfles et de petits carrés (la capture d'écran ci-contre est assez typique, même si ce jeu précis est plus tardif et date de ma période Turbo Pascal vers '91).

À l'été '88 mes parents et moi sommes retournés à Toronto pour un mois. Là j'ai beaucoup joué sur les machines de l'Université (toujours VAX/VMS, et j'ai un peu appris comment cet OS fonctionnait) ; j'ai aussi vu pour la première fois des Sun sous Unix — mais je n'y ai pas touché.

Lorsque Turbo Pascal 4.0 est sorti, je me le suis fait offrir comme cadeau de Noël (je suppose que c'est de Noël '88 qu'il s'agit). Et je me suis (re)mis à programmer en Turbo Pascal, ce qui est quand même plus agréable que le BASIC.

Mes souvenirs concernant l'ordre des événements sont particulièrement obscurs, là. Lorsque j'ai eu TP-4.0, l'ordinateur avait presque certainement déjà un disque dur — je sais qu'il y a eu plein d'achats de disques durs, de diverses tailles, dont certains ont été renvoyés rapidement car ils ne fonctionnaient pas (c'était bien avant le standard IDE), mais tout cela s'embrouille dans ma tête. On devait aussi avoir la carte EGA et le moniteur couleur (dont l'achat avait été nécessité, justement, par cette carte EGA). Pourtant, je vois mal comment j'aurais pu acheter TP-4.0 longtemps après la sortie de la version 5 (qui date d'août '88 si j'en crois le Web) — hum. Bon, de toute façon, j'ai eu les versions 5.0 et 5.5 plus tard (par copie illégale).

Je suis aussi incapable de me rappeler précisément quand a été acheté le 486DX33 qui a été notre ordinateur suivant : quelque part entre mi-'91 et mi-'94, probablement début '92, mais je n'ai plus d'événement notable auquel me référer. En tout cas, il y a eu d'abord un PS/2 et un 386 au labo de mon père (à la fac d'Orsay : il avait quitté l'X parce que l'X n'est pas assez chauffée en hiver) sur lesquels j'ai pas mal joué (d'ailleurs, le PS/2 a été pendant un temps sous Xenix, l'Unix de Microsoft), notamment j'ai appris pas mal de choses (grâce à Turbo Debugger) sur le fonctionnement de ces puces, et j'ai commencé à programmer en assembleur (grâce à Turbo Assembler). C'est en voyant ces machines et en jouant avec que nous nous sommes convaincus qu'il était opportun d'acheter un vrai processeur 32-bits.

[Capture d'écran du jeu « Legendes »]Et puis (de nouveau, je ne situe plus bien l'ordre chronologique), il y a eu le début de l'épopée de programmation du jeu Legendes (téléchargeable ici, sources+binaires, dans une de ses dernières versions — utilisez par exemple DOSBox pour le faire tourner), en Turbo Pascal, dont j'étais le principal programmeur. En fait, si je me rappelle bien, il a été commencé parce que j'ai prêté mon 8088 à mon ami Laurent Penet quand j'ai eu mon 486, et qu'il a voulu programmer en Pascal ; le troisième larron de l'équipe était Philippe Clavel. Une bonne partie de mon temps pendant mes années lycée a été passé, outre à écrire mes romans, à améliorer Legendes. J'ai aussi pas mal joué à Ultima VI (vers '91 ?) et à Ultima VII (en '93, je dirais : d'ailleurs un des très rares jeux que j'aie achetés légalement), aussi, et puis Ultima Underworld qui m'a fasciné par la réalisme de sa 3D ; ah, et il y a eu King's Quest V (celui où le roi doit retrouver son château qui a été volé par un méchant magicien, auquel j'ai joué vers '92), et King's Quest VI (celui qui se passe sur plein d'îles) un peu après. Je n'ai jamais été intéressé que par les jeux dans le style jeu de rôle ou d'aventure (cf. aussi cette entrée). À l'été '94 j'ai aussi eu une nouvelle imprimante, une HP LaserJet 4ML (là je suis sûr de la date, parce que la vieille s'est cassée pendant mon année de terminale, et la nouvelle était un cadeau / défi de mon père à cause de mes résultats au Concours général).

Mes premiers vrais contacts avec Unix ont été assez tardifs. C'était essentiellement sur les ordinateurs du labo de mon père. Vers '93 ou '94, disons. Et aussi mes premiers contacts avec le World Wide Web (qu'on consultait par un navigateur qui s'appelait justement WorldWideWeb), dont il n'était alors pas clair qu'il allait supplanter les choses comme Gopher. Même quand je suis allé en stage au laboratoire de Brookhaven (état de New York) à l'été '94, à la fin nous échangions des adresses mail (moi j'ai donné celle de mon père, qui me forwardait) mais le Web était encore pas trop répandu, si j'ose dire.

J'ai fait de timides tentatives pour apprendre le C dans ces années-là (avec Turbo C et Microsoft C, sous DOS), mais sans aller très loin : le livre que j'avais était plutôt mauvais, parlait du C pré-ANSI (et je ne comprenais rien aux déclarations), et de façon générale je ne voyais pas l'intérêt de ce langage apparemment si compliqué par rapport au Turbo Pascal (lequel permettait très facilement de faire des choses comme des manipulations du terminal, alors qu'en C c'était au mieux malcommode).

En prépa ('94–'96) j'ai fait très peu d'informatique, en fait. Le club info du lycée Louis-le-Grand était un endroit quasi-mythique, pourtant (mais c'était plutôt pour les jeux en réseau…) mais je ne m'y suis pas inscrit. Donc je me suis limité aux TD dans le cadre de l'enseignement normal (donnés, en sup', par mon prof de physique, et en spé' par Faré — et c'est de la bouche de ce dernier que j'ai entendu pour la première fois le mot Linux, fin '95, en même temps qu'il m'a montré les CD InfoMagic qui en étaient la principale distribution).

En année de conscrit à Ulm, donc à partir de fin septembre '96, je me suis replongé dans l'info, en découvrant vraiment Unix, en ayant une vraie adresse mail — et une page Web (d'abord dans du HTML complètement pourri). J'ai suivi le cours de Systèmes de Jacques Beigbeder (l'administrateur système de l'ENS depuis des temps immémoriaux), et j'ai vraiment appris à programmer en C et un peu en Perl (pour le Perl, j'ai été réticent beaucoup plus longtemps, cependant), et à comprendre les ins and outs d'Unix et à en être de plus en plus fasciné.

Je me suis acheté une nouvelle machine basée sur un Pentium Pro 200, courant '97 (je peux être plus précis : c'est le jour où la gauche a gagné les élections législatives ; ma mère et moi étions allés le chercher chez un petit assembleur près de Chartres, et nous avons entendu la nouvelle sur l'autoradio). C'était le premier PC que j'achetais avec mon argent à moi, et j'ai tout naturellement voulu mettre un Linux dessus : j'ai installé une RedHat 4.1 qui venait de sortir. (J'avais auparavant fait une tentative pour mettre Linux sur le 486, mais comme ce dernier n'avait ni réseau ni lecteur de CD je devais faire ça par boîtes de disquettes et j'en ai vite eu marre.)

À partir de l'été '98 et surtout de janvier '99, je suis devenu co-administrateur de plusieurs machines Unix à l'ENS (les machines élèves et surtout le quatramaran, qui n'existe pas alors vous n'avez pas vu cette adresse). Je me rappelle qu'être root sur une machine qui a une vraie connexion Internet (ou disons, pouvoir recevoir du mail à root@quelquechose) avait été pour moi une sorte de rêve, comme l'anoblissement dans l'ordre aristocratique d'Unix.

Je pourrais dresser la liste du matériel informatique que j'ai acheté depuis (un biprocessus avec deux Pentium II 450, un Pentium III 600, un Pentium 4, un Pentium D, un Core 2 Quad — je suis toujours resté fidèle à Intel), mais ça n'a guère d'intérêt : on ne s'attache pas au N-ième PC comme on s'attache aux tout premiers qui étaient vraiment quelque chose de nouveau et d'excitant. Je n'ai pas spécialement plus d'attachement envers les différentes installations de Linux que j'ai utilisées (d'abord les RedHat dont j'ai acheté toutes les versions successives jusqu'à ce qu'ils disparaissent, puis Debian et Ubuntu) : je ne les utilise (et je n'utilise Unix) que parce que je pense que le reste est pire.

Pour ceux qui n'ont pas compris pourquoi je raconte ça, Dennis « dmr » Ritchie est décédé il y a quelques jours. Qu'on ne s'imagine pas que je divinise M. Ritchie ou Unix : il est bien connu qu'Unix a été inventé en quelques jours parce que Ken Thompson voulait jouer à Space Wars sur un PDP-7 qu'il avait récupéré, et qu'il fallait un OS pour ça ; et que le C a été inventé pour passer du PDP-7 au PDP-11 ; les travaux vraiment innovants de Thompson et Ritchie, ce sont plutôt les choses comme Plan 9 et Inferno, et ils ont été je crois assez aigris de voir que personne ne s'y intéressait alors que Linux, basé sur leurs idées de vingt ans plus tôt remportait un tel succès : mais le succès d'un OS n'a que peu de rapport avec sa qualité, et ce sont souvent les choses programmées en quelques jours par un hacker motivé qui finissent par dominer le monde — telle est la leçon d'Unix, du DOS et de l'Apple II.

↑Entry #1952 [older| permalink|newer] / ↑Entrée #1952 [précédente| permalien|suivante] ↑

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]