Memory Full

Antoine

Written by Hicks & Beb in May 2018

Hicks - Bonjour Antoine. Malgré ton travail très remarqué dans les années 1990, tu t'es fait assez rare en interview et en meeting, était-ce intentionnel ou accidentel ?

Antoine - Ça correspond à ma personnalité. Je préfère m’investir concrètement dans des projets techniques que participer à de grands raouts.

Hicks - C'est donc le moment de refaire les présentations. Tu as publié tardivement tes premiers softs CPC, mais quand as-tu acquis un CPC ? Pourquoi ne jamais avoir choisi de pseudo ?

Antoine - C’est le moment de préciser que j’ai des souvenirs très parcellaires de cette époque qui est loin derrière moi. Je vais donc faire de mon mieux, mais peut-être devrai-je fournir à certaines questions des réponses un peu évasives, car il faudrait sinon faire un gros boulot d’archéologie.

Ce n’est pas moi qui ai acquis un CPC, mais mes parents qui m’en ont acheté un. J’étais en classe de cinquième, je crois. Mes parents, qui ignoraient tout de l’informatique, avaient dû comprendre qu’elle m’attirait et décidé de me faire un cadeau beaucoup plus gros qu’à l’habitude ! Combien de choses dans ma vie leur décision a-t-elle déterminé, je ne sais pas exactement, mais probablement beaucoup...

Pour le pseudo, cela s’explique par mon rapport à la « scène », détaillé plus bas. Mais c’est aussi un manque d’imagination, tout bêtement. Aujourd’hui, j’aurais des tas d’idées ! (mais aucune envie de redevenir actif sur CPC...)

Hicks - Tu as été impliqué dans le fanzine Micro Mag, d'abord sur papier (avec Olivier), puis sur disc lorsqu'il est devenu Micro Mag & Press Fire (avec Force One). On te sent très exigeant vis-à-vis des fanzines et démos qui sortaient, élitiste pourrait-on dire ? Tu semblais par exemple assez hostile à Amstrad 100%, que la plupart des autres fanzines admiraient tous...

Antoine - Je crois me souvenir qu’il y avait dans Amstrad 100 % une tendance à l’esbrouffe et un côté « club de copains » qui me rebutait : on achète un magazine, à l’affût d’articles intéressants, et on se retrouve à lire des textes où les gens racontent presque leurs vacances à la plage entre deux chroniques de jeu vidéo assez complaisantes (pour ne pas faire fuir les annonceurs, peut-être ?). Mais je me rappelle aussi y avoir appris les rudiments des algorithmes de tri (un article de Denis Jarril alias Sined, il me semble ?), bien avant de suivre un cours formel d’algorithmique ! Tout n’était donc pas à y jeter...

Exigeant, je le suis toujours, parfois hypercritique. Mais je me contrôle et mon entourage le vit bien !

Hicks - Par ailleurs, tes cours assembleur étaient toujours originaux et avancés. Comment as-tu été formé au z80 ? Y'avait-il un lien avec tes études ?

Antoine - De deux bouquins Micro-Application, un sur l’assembleur Z80 et une « Bible du CPC 6128 » (cette dernière que j’ai toujours sur une étagère, étonnamment). Le reste, c’est de l’expérimentation, notamment le boulot sur les instructions cachées du Z80, mais aussi les temps d’exécution, dont j’étais assez fier car j’avais dû trouver une méthode de mesure fiable sans appareillage externe. Il s’est avéré que les interruptions matérielles du CPC ont une régularité métronomique.

Hicks - Tu avais une prédilection pour les logiciels : Cheese Cruncher, DAMS converter, Font Catcher, etc. Est-ce qu'ils répondaient à un besoin personnel, ou était-ce ce que tu préférais coder ?

Antoine - Je préférais et préfère coder. Aujourd’hui, je bosse professionnellement sur des briques logicielles dédiées au développement.

Hicks - Il semblait y avoir une petite rivalité avec Crown/BENG!, à en lire le Turbo Super Monitor Razormaid Mix, réaction à son Super Monitor. Peux-tu nous en dire plus ?

Antoine - J’avais découvert fortuitement que le code de son compresseur (nommé « Crown Imploder », je crois ? [NdHicks : il s'agit précisément du Turbo Imploder]) était repompé d’un logiciel commercial écrit par un certain Richard Aplin. Ce n’était pas simplement l’algorithme qui était dérivé de ce logiciel, non, le code de compression et de décompression était recopié de A à Z sans aucune mention de l’origine, en laissant croire que « Crown » en était l’auteur talentueux, alors que c’était un vulgaire plagiat. Il s’agissait d’une implémentation très compacte et finement programmée d’un compresseur Huffmann (algorithme classique mais pas évident à optimiser car la décompression nécessite un traitement bit par bit) ; Aplin méritait largement d’être crédité pour cela.

(pour ceux que ça intéresse, le « Cheese Cruncher » implémentait quant à lui un compresseur LZW avec un dictionnaire de taille fixe à 254 entrées ; son principal mérite était une implémentation optimisée à fond les manettes, loin devant – à ma connaissance – les autres compresseurs du même type sur CPC)

S’attribuer la paternité d’un code qu’un autre a écrit, et qu’on aurait peut-être été incapable d’écrire soi-même, je trouvais ça inacceptable. Nous étions jeunes et nous faisions tous, plus ou moins, des écarts (le piratage et le déplombage étaient courants, en général sans intention crapuleuse), mais il avait franchi une sorte de barrière éthique.

Je crois qu’il a mal pris que je révèle, ou rappelle, ce fait gênant dans mon texte d’intro pour le « String Viewer » (en relisant le texte exact, je vois que je m’étais bien amusé dans la formulation !). Il m’a envoyé un courrier agressif, et même un appel téléphonique en anglais auquel je n’ai pas compris grand’chose, mais où je sentais bien que l’interlocuteur cherchait à se donner un air méchant... Ce n’étaient que des gamineries.

Le « Turbo Super Monitor Razormaid Mix », avec son titre ridicule pour caricaturer l’histrionisme crownesque (mais qui était un peu celui de tout démomaker), s’inscrivait dans la continuité de cette histoire, mais il était aussi lié à des besoins personnels.

Et nous voici, en mai 2018, je fais quelques recherches Internet sur le sujet, et je découvre que d’autres ont exhumé, de nouveau, le code de compression de Richard Aplin et ont sorti un « Richard Aplin Cruncher Frontend ». Aplin, auteur de Double Dragon et victime de double profanation de code informatique ! Il y a fort à parier que si on comparait la sortie de ce nouveau « frontend » à celle du compresseur de Crown, elle serait à quelques octets près identique. Mais eux ont l’honnêteté d’attribuer correctement la paternité du code au lieu de prétendre en être les auteurs.

Hicks - Avec quels sceners étais-tu en contact à l'époque ? On associait souvent ton nom à celui de Mage, parfois d'Odiesoft. Quels étaient globalement tes rapports à la scène CPC ?

Antoine - Un rapport assez distant. La notion de scène, avec ses petites querelles et prétentions (rien que le nom de « scène »... on fait du théâtre ?), avait tendance à m’embêter. Mage était devenu un ami à l’époque, j’avais quelques autres relations plus épisodiques, par exemple avec Mad Ram ou Wolfgang Röttger. Il y a aussi le fait que je suis arrivé assez tard par rapport à l’âge d’or de la démo CPC (ou peut-être le premier âge d’or, vu que je ne sais guère ce qui s’est produit depuis 1995). Techniquement c’était stimulant, mais je n’arrivais pas à comprendre l’investissement émotionnel et social de certains dans ce petit monde clos. Bien sûr, j’étais adolescent, je ne l’exprimais pas si clairement : c’était un ressenti.

Il y avait un autre monde CPC, avec pas mal de fanzines papier que je lisais plus ou moins régulièrement, guettant avec impatience d’éventuels courriers pour moi dans la boîte aux lettres... mais là aussi, je suis arrivé à une époque où l’activité commençait à se tarir, le foisonnement appartenait au passé.

Hicks - Tes démos proposaient souvent des effets inédits (shade bobs, rotozoom, dots fractals, etc.). De quels machine, groupes ou démos t'inspirais-tu ? Quelle était ton opinion sur les démos CPC de cette époque ?

Antoine - J’étais un peu jaloux des gens capables de passer des journées entières – probablement frustrantes – à triturer les microcycles de leur démo pour se caler sur les timings d’un CRTC récalcitrant. Je n’avais pas ce genre d’abnégation ! Et puis les autres étaient allés très loin... Quand Logon System sort The Demo ou Overflow sa « S&KOH », comment arriver à se distinguer si on se focalise, comme eux, sur les bidouilles matérielles ? J’adorais regarder les effets codés par Longshot, mais je ne me voyais pas passer le temps nécessaire pour mettre au point vingt défilements horizontaux simultanés en parallaxe, plus quelques rasters et autres joyeusetés synchronisées quasiment à la microseconde.

Je cherchais donc à faire autre chose. Avec le recul, ce n’était pas forcément génial, mais ça amenait un peu de fraîcheur et de nouveauté (« tiens, une démo dont l’effet principal ne tient pas en textes défilants et rasters bondissants ! »). Pour ce qui est de l’inspiration, je découvrais, dans un ou deux magazines (je ne sais plus lesquels), ce qui se faisait sur Amiga ou Atari ST – je n’allais pas voir de plus près, d’ailleurs. Quelques captures d’écran et descriptions textuelles me donnaient envie d’essayer de reproduire le genre d’effets qu’elles me faisaient imaginer.

Sur les démos de l’époque... Je me souviens d’un étrange fossé stylistique, grosso modo entre d’une part les créations françaises, souvent léchées, et les créations allemandes à l’esthétique pas très heureuse. Il me semble qu’il y a eu une mégademo d’un certain Prodatron, très inventive et impressionnante techniquement, mais visuellement abominable avec des mariages de couleurs improbables (du violet sur fond vert, ce genre de chose). Bref, les Allemands n’avaient aucun goût ! C’est un cliché ridicule, mais ils lui donnaient raison.

Et sinon, ça tournait quand même un peu en rond, beaucoup réimplémentant à l’envi les mêmes techniques sous un jour légèrement différent. Des scrollings, des rasters, des scrollings... Il est vrai que les capacités de la machine n’aidaient pas du tout.

Hicks - Te souviens-tu de la conception de la Divine Megademo ? Beaucoup y voyaient enfin LA demo qui allait tout balayer, mais à lire les fanzines à sa sortie, si ses grandes qualités ont été reconnues, j'ai l'impression qu'elle a tout de même généré une petite déception ?

Antoine - Ah, je ne savais pas qu’on avait généré une telle attente ! Le problème, c’est qu’on espérait faire des choses géniales, mais qu’on ne savait pas exactement quoi... Et comme dans beaucoup d’aventures informatiques, on a sous-estimé le temps et l’implication nécessaires (ou plutôt : on n’a rien estimé du tout). Il me semble aussi qu’on communiquait assez peu entre nous, surtout avec Odiesoft que nous connaissions mal, un courrier postal de temps à autre. C’est très insuffisant pour garder sur les rails un projet collectif, et on voit bien le résultat : c’est plus une juxtaposition de bidules dépareillés qu’un tout intégré et cohésif. The Demo ne donne pas une telle impression de bric-à-brac. Oui, c’était un demi-échec (mais étions-nous capables de mieux ? Je ne suis pas sûr).

Le souvenir le plus précis que j’en ai, c’est l’énorme police de caractères, très élégante, que Mage a utilisée pour le menu principal. Je crois que c’était la chose la plus jolie à voir dans cette démo.

Hicks - Finalement, pourquoi avoir quitté le CPC ? As-tu conservé des previews ou codes inachevés de l'époque ? Y'a-t-il des choses que tu aurais aimé faire ou finir sur CPC avant ton départ ?

Antoine - Quand j’ai quitté le CPC, cela faisait un bout de temps qu’il était moribond, en tout cas dans le grand public... Faire partie d’une petite communauté de hobbyistes qui font revivre un truc hors d’âge ne m’intéresse pas. Par ailleurs, c’était l’époque où je commençais mes études (très prenantes les deux premières années), et il fallait faire des choix. Pour beaucoup d’entre nous, faire des démos informatiques était lié à l’adolescence. Avec l’arrivée à l’âge adulte, l’intérêt s’étiole et s’évanouit plus vite qu’on ne l’imaginait, et on n’y revient plus.

Pour ceux que ça intéresse, il y a un bon jeu vidéo sur le lien entre l’adolescence et l’apprentissage de l’informatique, où cette impression de quitter les sentiers battus et de faire des choses improbables avec un ordinateur joue le rôle de découverte du monde, c’est « Digital, A Love Story » de Christine Love.

Ai-je laissé certains projets en plan ? Peut-être, mais je ne me rappelle rien. Et, non, je n’ai conservé aucune disquette, aucun fanzine, aucun code source... rien sauf ce bouquin Micro-Application qui survit étrangement chez moi, comme si je voulais garder un dernier souvenir tangible de cette époque.

Hicks - À la fin des années 1990, tu avais démarré l'émulateur YAGE, qui était supérieur à tout ce qui se faisait alors. Pourquoi avoir abandonné le projet ?

Antoine - N'étant plus actif sur CPC, et n'ayant pas envie de le redevenir, mes deux motivations étaient le défi technique et une vague envie de regarder quelques vieilles démos. En 1998 je commençai à bosser, et la vie professionnelle m'a fait douter un certain temps de mon goût pour l'informatique et la programmation. L'inutilité de maintenir un émulateur pour une machine qui ne m'intéressait pas a fait le reste.

Il y a autre chose : avec un émulateur, les conditions de rendu, la sensation physique ne sont plus du tout les mêmes. À quoi bon lancer des programmes prévus pour un écran cathodique d'entrée de gamme aux pixels baveurs et un système de synthèse sonore tout aussi perfectible, sur du matériel contemporain qui ne reproduit nullement l'impression d'origine ? Je n'ai aucune nostalgie technique, je ne peux pas me passionner pour des choses obsolètes, je ne comprends pas par exemple les musiciens qui parsèment leurs morceaux de « craquements de vinyl » pour leur donner un atour rétro.

Ce qui m'a le plus stimulé dans la réalisation de YAGE, c'était la génération des émulations d'opcodes Z80 par la méta-programmation C++. J'avais des tas de classes C++ pour générer, à la compilation, et grâce à un paramétrage sophistiqué, toutes les variantes d'une instruction à partir d'une implémentation générique unique, en l'instantiant avec tous les registres et modes d'adressage requis. À l'époque, je ne suis pas sûr que beaucoup de gens allaient aussi loin dans l'exploitation de la méta-programmation C++ (pour compiler YAGE, il fallait augmenter le niveau maximum de récursion de templates supporté par gcc... on dirait un gag à la Spinal Tap).

Bref, je me faisais une petite fierté de cette prouesse d'implémentation... qui n'apporte rien à l'utilisateur. En quelque sorte, YAGE n'était pas un émulateur : c'était ma dernière démo, une sortie en beauté. Une fois la démonstration effectuée, je me désintéressai.

Serge Querné alias Longshot, après avoir découvert l'émulateur, m'avait envoyé un long courrier postal avec des tas de notes techniques de sa part sur le fonctionnement des circuits internes du CPC. À ma grande honte (vraiment : ce n'était pas très glorieux), je n'ai rien trouvé à lui répondre, étant devenu indifférent à tout cela. J'espère qu'il ne m'en a pas voulu !

Hicks - Pour finir, peux-tu nous parler des projets dans lesquels tu es impliqué aujourd'hui en terme de programmation ? De ce point de vue, que gardes-tu aujourd'hui de ton passage sur CPC ?

Antoine - Aujourd’hui, je suis (bénévolement) core développeur du langage Python et de son implémentation principale. Je suis depuis quelques temps payé pour développer des bibliothèques open source pour le calcul scientifique. Par exemple, je travaille sur Arrow, un projet Apache d’interopérabilité inter-langages pour le partage en mémoire de données colonnaires, avec notamment une implémentation C++ et Python (mais aussi d’autres implémentations sur lesquelles je n’interviens pas).

Cela fait belle lurette que je ne fais plus d’assembleur ni de code bas niveau, et je trouverais très embêtant de m’y remettre. Les petites machines dédiées à la bidouille, genre Arduino ou Raspberry Pi, ne m’intéressent guère.

Ce que je garde de mon passage sur CPC ? L’initiation à l’informatique et à la programmation, tout simplement. Aucune connaissance concrète ne me sert aujourd’hui, mais l’apprentissage de l’expérimentation directe, sans but précis, sur un objet nouveau apporte un regard très différent de ce que l’on apprend plus tard dans un cadre formel ou dirigé. C’est, en un sens, irremplaçable, même si ça peut (heureusement!) prendre des formes qui n’ont rien à voir avec l’écriture de démos et les effusions juvéniles dans des scrollings horizontaux.

Hicks - Merci de m'avoir accordé de ton temps !