Jouteurs

Lun 28 mai 2012

Cette sensation écrasante, étouffante. Cette rumeur, ce grondement, cette vibration, lointaine. Quelques coups de corne de brume. Les sons habituels d'un samedi soir habituel. L'immense enceinte du stade se découpe dans le jour tombant.

Au coeur de ce stade, dans les sous-sols, les vestiaires.

Cinq portes sur les faces d'un pentagone. Sur la première, un "zéro", gravé sur une plaque d'aluminium. Sur la seconde, le chiffre "un". Sur la suivante, un "dix". Sur la quatrième, un "onze".

Sur la cinquième, l'inscription indique ":q".

Une première sonnerie retentit, suivie d'un appel au haut-parleur :

“Votre attention s'il vous plaît, la compétition commence dans dix minutes. Les concurrents doivent se rassembler dans le Pentagone.”

Derrière la porte "zéro", l'homme a un léger tremblement, puis son coach lui fait une dernière tape amicale dans le dos, avant de lui glisser dans un murmure : "on y va".

L'homme a une tenue simple. Il arbore un t-shirt sur lequel Homer Simpson tient une bière "Duff" en souriant. Les sponsors. Que ne faut-il faire pour les contenter.

Son coach lui ouvre la porte et il se trouve face à ses concurrents du soir. Deux d'entre eux sont quasiment des potes ; il leur adresse un petit sourire gêné. On a beau être amis, ce soir, ils s'affronteront. Le dernier concurrent a tout du gentil garçon un peu niais qui regarde ses chaussures. L'homme sait que ce petit bonhomme a de la classe, du génie, un talent démentiel, mais qu'il souffre d'un autisme léger. Certains pensaient à tort qu'il était totalement débile avant qu'il soit détecté par son coach. Une perle rare, dit-on dans les magazines spécialisés. C'est sa première compétition ce soir.

L'homme se demande en quoi ce handicap peut influencer sa performance.

La seconde sonnerie retentit, et la même voix transperce les hauts-parleurs :

“Tous les concurrents doivent se diriger vers l'enceinte. Bonne chance à tous.”

La porte ":q" est ouverte par un employé du stade et la salle Pentagone reçoit une bouffée d'air frais de l'extérieur, accompagnées des rumeurs venues des gradins, si proches, si angoissantes.

Les concurrents gravissent les marches qui mènent au terrain ; désormais les encouragements et les chants des supporters se font de plus en plus impressionnants et l'homme sent grandir la boule qui lui pèse dans le ventre.

Le speaker du stade chauffe à blanc les spectateurs, qui applaudissent et crient leur impatience d'assister à la joute.

Puis l'homme et ses concurrents débouchent enfin en pleine lumière ; l'atmosphère est électrique, les hurlements de la foule deviennent assourdissants, les flashes crépitent et aveuglent encore plus les quatre jouteurs du soir.

Dès qu'ils sont entrés, chacun est suivi par une caméra mobile, dont les images sont retransmises sur les écrans géants du stade, chacun dans un coin. L'homme est dans le coin inférieur gauche de ces écrans. Il sait que c'est sa place fétiche. Il se dit qu'il a eu de la chance au tirage au sort. Puis il se dit que la superstition n'a rien à voir. Que ses chances de s'en sortir ne sont pas dûes au hasard mais à son seul talent.

Au centre du terrain, quatre bureaux en rectangle, éclairés assez subtilement pour ne pas déranger les jouteurs et pour permettre aux caméras de reproduire l'image de leurs exploits.

L'un des six arbitres de la rencontre s'approche d'eux. C'est un vénérable Geek, reconnu de tous et parfaitement impartial. Le silence se fait peu à peu. Ce qu'il leur dit est diffusé à pleine puissance dans les hauts-parleurs du stade.

“Bonsoir messieurs. J'ai l'honneur d'être l'arbitre-maître de la joute de ce soir. Je compte sur vous pour respecter les commandements et les règles du défi. Je vous rappelle le déroulement de la partie. Au top départ, vous aurez tous dans le dossier "test" de votre /home une classe de test présentant des assertions et scénarios de base. Vous aurez cinq minutes pour implémenter ces tests de manière élégante. À la fin de ces cinq minutes, notre bot committera votre code tel quel, qu'il soit terminé ou non, le poussera vers notre serveur d'intégration continue et lancera le jeu de test. Si les tests passent, vous êtes encore dans la course. S'ils ne passent pas, vous êtes éliminés. Les juges auront alors trois minutes pour regarder la qualité de votre code et assigner une note de 1 à 10. Nous referons ensuite une itération, en rajoutant des assertions aux tests. Je rappelle que toute la batterie de tests sera vérifiée lors des commits/pushes, aussi, toute régression équivaudra à une élimination. Il y aura dix itérations. Si avant la dixième un concurrent reste seul en lice, il sera déclaré vainqueur. Si vous êtes plusieurs à la fin des dix itérations, les notes des juges seront aditionnées et qui détermineront le gagnant. Des questions ?”

Les quatre concurrents n'ont pas de question à poser.

Chacun s'installe devant son bureau. Laptops ou tours, double ou triple écran, chaque configuration a été choisie et testée des dizaines de fois par les concurrents. Au point où en étaient les enjeux, il n'y avait aucun soucis à se faire pour les performances de ces bêtes de combat. Tous étaient à la pointe. Seul le talent comptait.

L'homme fait craquer ses doigts, s'installe tranquillement. Un compteur court de 30 à zéro et les premiers tests unitaires s'affichent sur l'écran de droite de son bureau. Facile. Les premières itérations sont toujours extrêmement simples, basiques. L'homme arrive facilement à les implémenter, en à peine trois minutes. C'est comme un exercice de style d'école. Pas besoin de forcer son talent. Il lance le test en local. Tout est vert. Il committe et push son code, machinalement.

L'homme est le premier au temps, alors il lève un peu la tête vers le grand écran pour voir où en sont les autres. Ses deux amis sont presque au bout. Leur implémentation est on ne peut plus simpliste, rien de bien étonnant. C'est de la complexité que naît l'ingéniosité et de l'ingéniosité peut naître l'élégance.

Mais là, nous sommes loin d'un travail d'orfèvre.

Ce qui est étrange, c'est que le petit autiste a à peine commencé à taper son code. On le dirait perdu, absent. Il choisit les noms de ses variables un peu au hasard ; le temps s'écoule lentement. Il lui reste une minute. Et tout accélère d'un seul coup : comme un aigle fondant sur sa proie, ses mains plongent vers le clavier et se déchaînent à une vitesse vertigineuse. C'est à peine si on voit les doigts bouger. Les lignes de code défilent sur l'écran et les autres concurrents assistent abasourdis à cette explosion de pixels et d'octets.

Dix secondes avant la fin, le jeune homme s'arrête brusquement. Il met la touche finale à son oeuvre en composant le dernier mot de son implémentation : Tabulation, m, a, i, n, (, ).

Puis, à la limite de la sirène finale, la touche Return.

Le robot s'enclenche, collecte les codes sources restants et commit/push. Tous les voyants sont au vert.

C'est le début des trois minutes de pause. L'homme jette un coup d'oeil au petit jeune, puis il fonce vers le code. Il l'analyse avec une certaine appréhension. Il a rarement vu un concurrent faire preuve d'autant de prouesse, et dans un temps aussi ramassé. C'est comme s'il avait composé son code dans sa tête avant de le projeter avec une puissance inouïe sur son clavier.

En quelques dizaines de secondes, l'homme a compris qu'il n'aurait aucune chance, que ce gamin était imbattable.

Il se lève, s'approche de celui qui porte le nom de ZoNk sur les réseaux et lui tend la main. C'était prévisible, le jeune autiste ne le regarde même pas et ne lui rend pas sa main tendue. Il se balance doucement sur sa chaise. Le coach s'est approché aussi, il a peur pour son poulain.

Mais l'homme n'a pas l'intention de faire du mal à ce concurrent. Il se tourne vers l'arbitre-maître et lui dit solennellement : “J'abandonne”.


Cette nouvelle ne serait rien sans l'idée absolument mirobolique de Thibault Jouannic dont il m'a parlé durant Sudweb. Merci à lui.