- Le programmeur français Fabrice Bellard est l’un des développeurs les plus influents des vingt dernières années, ayant publié de nombreux projets innovants sous forme de logiciel libre
- Dès l’enfance, il se passionne pour l’électronique et la programmation bas niveau, et connaît un premier succès à 15 ans avec LZEXE, un compresseur de fichiers exécutables
- Il suit ensuite une formation d’ingénieur généraliste à l’École Polytechnique, où il acquiert une compréhension approfondie du calcul mathématique et de l’architecture des ordinateurs
- Parmi ses œuvres majeures figurent FFmpeg, TinyCC et QEMU ; ce dernier s’est notamment imposé comme une technologie clé dans le domaine de la virtualisation et de l’émulation de processeurs
- Il est considéré comme un développeur qui met en pratique la philosophie du logiciel libre, privilégiant l’intérêt technique et le partage plutôt que le profit financier
Jeunesse et premiers pas en programmation
- Né en 1972 à Grenoble, en France, il grandit à Montpellier
- Il s’intéresse très tôt aux appareils électroniques, et raconte que son premier mot aurait été « magnétophone »
- À 9 ans, il commence à programmer sur une calculatrice programmable TI-59
- Malgré un affichage limité et un jeu de caractères restreint, il y apprend des concepts de haut niveau comme les boucles et développe son intuition du code bas niveau
- À 11 ans, il élargit sa pratique avec l’ordinateur familial TI-99/4A, en programmant en TI BASIC
- Avec une structure n’autorisant qu’une instruction par ligne, la transition de la programmation sur calculatrice à la programmation sur ordinateur se fait naturellement
LZEXE et premiers accomplissements
- À 15 ans, il achète un Amstrad PC1512 et entame une activité de développement à part entière
- Pour résoudre les contraintes d’espace de stockage, il développe LZEXE, un compresseur de fichiers exécutables
- Il réécrit l’algorithme LZSS en assembleur 8086 afin d’obtenir une compression et une décompression rapides
- Diffusé via les BBS, le programme connaît un succès immédiat
Formation à l’École Polytechnique
- Il intègre la prestigieuse École Polytechnique (X)
- Il s’agit d’un cursus d’ingénieur en 5 ans, incluant 1 an de service militaire
- Cette formation généraliste et technique met l’accent sur l’esprit critique et les compétences pluridisciplinaires
- Bellard y consolide l’importance de l’architecture des ordinateurs et de la théorie du calcul
- Il insiste sur le caractère essentiel du langage assembleur et de la compréhension du matériel
Recherche mathématique et développement d’algorithmes
- En 1995, il entre dans la recherche sur les algorithmes numériques en implémentant en C la méthode de multiplication FFT de Pollard
- En utilisant la FFT (transformée de Fourier rapide) pour les calculs algébriques, il parvient à calculer plusieurs millions de décimales de π
- En 1997, il publie une formule permettant de calculer le n-ième chiffre binaire de π
- Elle améliore la formule de Bailey–Borwein–Plouffe avec une complexité O(n²), 43 % plus rapide
VReng et TinyGL
- En 1998, il développe VReng (Virtual Reality Engine) dans le cadre d’un projet étudiant
- Un moteur d’exploration de mondes virtuels 3D reposant sur le multicast Internet
- Il crée ensuite TinyGL pour corriger les inefficacités d’OpenGL
- Ce renderer 3D léger de 40 KB est bien plus rapide que Mesa et indépendant de la plateforme
La naissance de FFmpeg
- En 2000, il lance le projet FFmpeg sous le pseudonyme « Gerard Lantau »
- Un outil prenant en charge l’encodage, le décodage, le streaming et la conversion audio et vidéo
- Il se compose de libavcodec (bibliothèque de codecs) et libavformat (bibliothèque de traitement des conteneurs)
- FFmpeg prend en charge la conversion entre de nombreux formats et est intégré à de très nombreux logiciels multimédias comme VLC
Victoire à l’IOCCC et TinyCC
- En 2000, il remporte l’International Obfuscated C Code Contest (IOCCC)
- Il y implémente un compilateur C de moins de 4 KB, qui évoluera ensuite en TinyCC
- TinyCC est un compilateur ultra-compact compatible ANSI C99, capable de compiler le noyau Linux en moins de 15 secondes
- Son deuxième programme lauréat en 2001 est un programme de calcul de nombres premiers de 475 octets
- Basé sur un algorithme FFT, il calcule rapidement des nombres premiers de plusieurs millions de chiffres
QEMU et l’innovation dans la virtualisation
- En 2005, il présente QEMU, qui émule des architectures de processeur en logiciel
- Grâce à la traduction dynamique (dynamic translation), les blocs d’instructions sont regroupés, convertis et mis en cache, ce qui améliore les performances
- Dans certaines situations, il atteint des vitesses proches du natif
- QEMU sera ensuite adopté comme composant clé de grandes technologies de virtualisation comme VirtualBox, Xen et KVM
Philosophie du logiciel libre et approche du développement
- Bellard publie tous ses principaux projets sous licence de logiciel libre
- Il privilégie l’intérêt et l’utilité au gain financier, et accorde une grande importance au partage du code source
- Il préfère se concentrer sur le développement pur plutôt que sur les tâches administratives et de communication
- Interrogé sur les raisons qui le poussent à explorer des sujets variés, il répond que « répéter toujours la même chose devient ennuyeux »
Sa vision de l’informatique et ses conseils
- Il distingue l’informatique entre exploration pratique (applications) et exploration théorique (théorie du calcul)
- Il souligne l’importance de repousser les limites dans ces deux domaines
- Aux jeunes développeurs, il recommande les bases théoriques et la compréhension du matériel
- Pour l’apprentissage des algorithmes, il conseille The Art of Computer Programming de Donald Knuth
- Ses recherches en cours à l’époque portent sur le traitement du signal numérique exploitant les processeurs multicœurs, en particulier des projets liés à la Software Defined Radio
Aucun commentaire pour le moment.