- El programador francés Fabrice Bellard es uno de los desarrolladores más influyentes de los últimos 20 años y ha publicado numerosos proyectos innovadores como software abierto
- Desde niño se dedicó a la electrónica y la programación de bajo nivel, y a los 15 años logró un éxito temprano al desarrollar el compresor de ejecutables LZEXE
- Más adelante recibió una formación integral en ingeniería en École Polytechnique, donde construyó una comprensión profunda del cálculo matemático y de la arquitectura de computadoras
- Entre sus obras más representativas están FFmpeg, TinyCC y QEMU; en particular, QEMU se consolidó como una tecnología clave en los campos de la virtualización y la emulación de procesadores
- Se le valora como un desarrollador que pone en práctica la filosofía del software libre, priorizando el interés técnico y el compartir por encima del beneficio económico
Primeros años e introducción a la programación
- Nació en 1972 en Grenoble, Francia, y creció en Montpellier
- Desde pequeño mostró interés por los dispositivos electrónicos, y se cuenta que su primera palabra fue “magnétophone (grabadora de casetes)”
- A los 9 años comenzó a programar con una calculadora programable TI-59
- A pesar de la pantalla y el conjunto de caracteres limitados, aprendió conceptos de alto nivel como los bucles y desarrolló sensibilidad por el código de bajo nivel
- A los 11 años amplió su experiencia usando la computadora doméstica TI-99/4A y programando en TI BASIC
- Como su estructura permitía ingresar solo una instrucción por línea, la transición de la programación en calculadora a la programación en computadora fue natural
LZEXE y primeros logros
- A los 15 años compró una Amstrad PC1512 y comenzó su actividad de desarrollo en serio
- Para resolver las limitaciones de espacio de almacenamiento desarrolló un compresor de ejecutables llamado LZEXE
- Reescribió el algoritmo LZSS en ensamblador 8086 para lograr compresión y descompresión rápidas
- Se distribuyó a través de BBS y obtuvo un éxito inmediato
Formación en École Polytechnique
- Ingresó a la prestigiosa École Polytechnique (X) de Francia
- Un programa de ingeniería de 5 años que incluía 1 año de servicio militar
- Daba prioridad al pensamiento crítico y a las capacidades multidisciplinarias mediante una formación amplia tanto humanística como técnica
- A través de este proceso, Bellard consolidó la importancia de la arquitectura de computadoras y la teoría de la computación
- Subrayó como esenciales el lenguaje ensamblador y la comprensión del hardware
Investigación matemática y desarrollo de algoritmos
- En 1995 entró en la investigación de algoritmos numéricos implementando en C el método de multiplicación FFT de Pollard
- Realizó cálculos de millones de dígitos de π mediante operaciones algebraicas apoyadas en FFT (transformada rápida de Fourier)
- En 1997 presentó una fórmula para calcular el n-ésimo dígito binario de π
- Mejoró la complejidad a O(n²), siendo un 43% más rápida que la fórmula previa de Bailey–Borwein–Plouffe
VReng y TinyGL
- En 1998 desarrolló VReng (Virtual Reality Engine) como proyecto estudiantil
- Un motor para explorar mundos virtuales 3D basado en multicast por Internet
- Después creó TinyGL para mejorar las ineficiencias de OpenGL
- Un renderizador 3D ligero de 40 KB, mucho más rápido que Mesa e independiente de la plataforma
El nacimiento de FFmpeg
- En 2000 inició el proyecto FFmpeg bajo el seudónimo “Gerard Lantau”
- Una herramienta que soporta codificación, decodificación, streaming y conversión de audio y video
- Compuesta por libavcodec (biblioteca de códecs) y libavformat (biblioteca para manejo de contenedores)
- FFmpeg soporta conversión entre múltiples formatos y fue integrado en numerosos programas multimedia como VLC
Premio IOCCC y TinyCC
- En 2000 ganó el International Obfuscated C Code Contest (IOCCC)
- Implementó un compilador de C de menos de 4 KB, que más tarde evolucionó a TinyCC
- TinyCC es un compilador ultrapequeño compatible con ANSI C99, capaz de compilar el kernel de Linux en menos de 15 segundos
- Su segunda obra ganadora en 2001 fue un programa de cálculo de números primos de 475 bytes
- Usaba un algoritmo basado en FFT para calcular rápidamente números primos con millones de dígitos
QEMU y la innovación en virtualización
- En 2005 presentó QEMU, que emula arquitecturas de procesador por software
- Mejora el rendimiento mediante traducción dinámica (dynamic translation), agrupando bloques de instrucciones para traducirlos y almacenarlos en caché
- En ciertas situaciones alcanza velocidades casi de nivel nativo
- Más adelante, QEMU fue adoptado como componente clave de importantes tecnologías de virtualización como VirtualBox, Xen y KVM
Filosofía del software libre y actitud de desarrollo
- Bellard publicó todos sus principales proyectos bajo licencias de software libre
- Priorizó el interés y la utilidad por encima del beneficio económico, y dio gran importancia a compartir el código fuente
- Se concentró más en la actividad pura de desarrollo que en tareas administrativas o de comunicación
- Sobre por qué desafía temas tan diversos, mencionó que es “porque repetir el mismo trabajo resulta aburrido”
Perspectiva sobre la informática y consejos
- Distingue la informática entre exploración práctica (aplicación) y exploración teórica (teoría de la computación)
- Enfatiza que es importante ampliar los límites en ambas áreas
- Recomienda a los desarrolladores jóvenes la teoría fundamental y la comprensión del hardware
- Para aprender algoritmos, recomienda The Art of Computer Programming de Donald Knuth
- La investigación en la que trabajaba entonces estaba relacionada con el procesamiento digital de señales usando procesadores multinúcleo, especialmente proyectos vinculados con Software Defined Radio
1 comentarios
Opiniones en Hacker News
Sin duda es una figura de nivel GOAT, pero este texto parece escrito por alguien que no entiende muy bien la ingeniería de software
Por ejemplo, describe el caché de traducción de código de QEMU como el ‘primer emulador con rendimiento nativo’, cuando en realidad la tecnología JIT existe desde mucho antes
Aplicaban un enfoque multipaso, pasando por las instrucciones varias veces y optimizándolas cada vez más, y el rendimiento mejoraba conforme aumentaba el uso
Claro, eso no le quita mérito a los logros de Bellard, pero los hechos son los hechos
Lanzar ffmpeg y QEMU en un lapso de 5 años, y además ganar el IOCCC dos veces, es un logro absolutamente demencial
Esta biografía tiene más información nueva sobre este programador legendario que cualquier otro texto que haya visto hasta ahora
Después de eso también trabajó en una estación base 5G basada en hardware de PC y en proyectos relacionados con LLM
Honestamente, me da curiosidad si Fabrice Bellard habrá empezado a usar herramientas de coding con LLM
Si fuera así, sería todavía más productivo, y eso da un poco de miedo
Ya hizo investigación sobre compresión de LLM y programa principalmente en C
Si alguien lleva décadas usando C, puede recordar y reutilizar la mayor parte de su código
Así que quizá un LLM no le sirva de mucho
Más bien creo que es más probable que entrene su propio LLM con su código — podría incluso convertirse en un proyecto privado de pago, como su proyecto LTE
Su código es sofisticado y metódico, y completamente distinto al código que suele generar la IA
Es el tipo de persona que trabaja visualizando la estructura completa del programa en su cabeza
Por eso algunos especulan que en realidad son varias personas o que usa LLM, pero seguramente él se estaría riendo al escuchar eso
Con el reciente lanzamiento de MicroQuickJS, ahora se ha convertido en alguien de quien se espera que siempre entregue ‘resultados legendarios’
La gente siempre espera algo impresionante de él
Me da curiosidad si Bellard se habrá hecho rico como antirez
(Es un texto de 2009)