- O programador francês Fabrice Bellard é um dos desenvolvedores mais influentes dos últimos 20 anos, tendo lançado inúmeros projetos inovadores como software livre
- Desde a infância, dedicou-se a dispositivos eletrônicos e programação de baixo nível e, aos 15 anos, alcançou seu primeiro sucesso ao desenvolver o compactador de executáveis LZEXE
- Depois, recebeu uma ampla formação em engenharia na École Polytechnique, onde construiu uma compreensão profunda de cálculo matemático e arquitetura de computadores
- Entre suas obras mais conhecidas estão FFmpeg, TinyCC e QEMU; em especial, o QEMU se tornou uma tecnologia central nas áreas de virtualização e emulação de processadores
- Ele é visto como um desenvolvedor que pratica a filosofia do software livre, valorizando mais o interesse técnico e o compartilhamento do que o ganho financeiro
Vida inicial e entrada na programação
- Nasceu em 1972 em Grenoble, na França, e cresceu em Montpellier
- Desde criança demonstrava interesse por dispositivos eletrônicos, e conta-se que sua primeira palavra foi “magnétophone” (gravador de fita)
- Aos 9 anos, começou a programar com a calculadora programável TI-59
- Apesar da limitação de tela e conjunto de caracteres, aprendeu conceitos de alto nível como loops e desenvolveu sensibilidade para código de baixo nível
- Aos 11 anos, passou a usar o home computer TI-99/4A e expandiu sua prática com TI BASIC
- Como a estrutura permitia inserir apenas um comando por linha, a transição da programação em calculadora para a programação em computador aconteceu de forma natural
LZEXE e conquistas iniciais
- Aos 15 anos, comprou um Amstrad PC1512 e iniciou sua atividade de desenvolvimento de forma mais séria
- Para resolver limitações de espaço de armazenamento, desenvolveu um compactador de executáveis chamado LZEXE
- Reescreveu o algoritmo LZSS em assembly 8086 para implementar compressão e descompressão rápidas
- Distribuído por BBS, o programa obteve sucesso imediato
Formação na École Polytechnique
- Ingressou na prestigiosa École Polytechnique (X) da França
- Um programa de engenharia de cinco anos, incluindo um ano de serviço militar
- A formação valorizava pensamento crítico e capacidades multidisciplinares por meio de educação geral e técnica abrangente
- Por meio desse curso, Bellard consolidou a importância da arquitetura de computadores e da teoria da computação
- Enfatizando a linguagem assembly e a compreensão de hardware como elementos essenciais
Pesquisa matemática e desenvolvimento de algoritmos
- Em 1995, entrou na pesquisa de algoritmos numéricos ao implementar em C o método de multiplicação FFT de Pollard
- Usando FFT (Transformada Rápida de Fourier) em cálculos algébricos, realizou o cálculo de milhões de dígitos de π
- Em 1997, publicou uma fórmula para calcular o n-ésimo dígito binário de π
- Melhorando a complexidade para O(n²), 43% mais rápida que a fórmula Bailey–Borwein–Plouffe existente
VReng e TinyGL
- Em 1998, desenvolveu o VReng (Virtual Reality Engine) como projeto estudantil
- Um motor para explorar mundos virtuais 3D baseado em multicast na internet
- Depois, criou o TinyGL para melhorar ineficiências do OpenGL
- Um renderizador 3D leve de 40 KB, muito mais rápido que o Mesa e independente de plataforma
O nascimento do FFmpeg
- Em 2000, iniciou o projeto FFmpeg sob o pseudônimo “Gerard Lantau”
- Uma ferramenta com suporte a codificação, decodificação, streaming e conversão de áudio e vídeo
- Composta por libavcodec (biblioteca de codecs) e libavformat (biblioteca de processamento de contêineres)
- O FFmpeg oferece conversão entre diversos formatos e foi integrado a inúmeros softwares multimídia, como o VLC
Vitória no IOCCC e TinyCC
- Em 2000, venceu o International Obfuscated C Code Contest (IOCCC)
- Implementou um compilador C com menos de 4 KB, que depois evoluiu para o TinyCC
- O TinyCC é um compilador ultracompacto compatível com ANSI C99, capaz de compilar o kernel Linux em menos de 15 segundos
- Em 2001, sua segunda obra vencedora foi um programa de cálculo de números primos com 475 bytes
- Usando um algoritmo baseado em FFT, calculava rapidamente números primos com milhões de dígitos
QEMU e a inovação em virtualização
- Em 2005, apresentou o QEMU, que emula arquiteturas de processadores por software
- Por meio de tradução dinâmica (dynamic translation), converte e armazena em cache blocos de instruções para melhorar o desempenho
- Em certas situações, alcança velocidade quase nativa
- O QEMU foi depois adotado como componente central de grandes tecnologias de virtualização, como VirtualBox, Xen e KVM
Filosofia do software livre e postura de desenvolvimento
- Bellard publicou todos os seus principais projetos sob licenças de software livre
- Priorizando interesse e utilidade acima do ganho financeiro, com forte ênfase no compartilhamento do código-fonte
- Preferindo concentrar-se em desenvolvimento puro em vez de tarefas administrativas e de comunicação
- Sobre o motivo de enfrentar temas diversos, comentou que “repetir sempre o mesmo trabalho fica entediante”
Perspectiva sobre ciência da computação e conselhos
- Divide a ciência da computação entre investigação prática (aplicada) e investigação teórica (teoria da computação)
- Enfatizando que é importante ampliar os limites em ambas as áreas
- Recomenda aos desenvolvedores mais jovens teoria fundamental e compreensão de hardware
- Para estudar algoritmos, recomenda Donald Knuth, 『The Art of Computer Programming』
- A pesquisa em andamento na época envolvia processamento digital de sinais com uso de processadores multicore, especialmente projetos relacionados a Software Defined Radio
1 comentários
Comentários do Hacker News
Ele claramente é um nome de nível GOAT, mas este texto parece ter sido escrito por alguém que não entende muito de engenharia de software
Por exemplo, descreve o cache de tradução de código do QEMU como o “primeiro emulador com desempenho nativo”, mas na verdade a tecnologia JIT existe há muito mais tempo
Eles adotavam uma abordagem multipasse, passando pelas instruções várias vezes e otimizando cada vez mais, e o desempenho melhorava conforme o uso aumentava
Claro, isso não diminui as conquistas de Bellard, mas fato é fato
Lançar ffmpeg e QEMU em um intervalo de 5 anos, além de ganhar a IOCCC duas vezes, é uma conquista simplesmente absurda
Esta biografia tem mais informações novas sobre esse programador lendário do que qualquer outro texto que já vi
Depois disso, ele também trabalhou em uma estação rádio-base 5G baseada em hardware de PC e em projetos relacionados a LLM
Sinceramente, fico curioso se o Fabrice Bellard começou a usar ferramentas de programação com LLM
Se sim, a produtividade dele ficaria ainda maior, o que seria até assustador
Ele já fez pesquisa sobre compressão de LLM e programa principalmente em C
Para alguém que usa C há décadas, dá para memorizar e reutilizar a maior parte do código
Então talvez um LLM não ajude tanto assim
Em vez disso, acho mais provável que ele treine seu próprio LLM com o próprio código — isso pode até evoluir para um projeto pago e fechado, como o projeto LTE
O código dele é sofisticado e sistemático, completamente diferente do código que a IA costuma gerar
Ele é o tipo de pessoa que trabalha desenhando a estrutura inteira do programa na cabeça
Por isso, alguns especulam que ele seria várias pessoas ou que usaria LLM, mas ele provavelmente riria ao ouvir isso
Ao lançar recentemente o MicroQuickJS, ele acabou se tornando alguém de quem agora se espera sempre um “resultado lendário”
As pessoas sempre esperam algo impressionante dele
Fico curioso se Bellard ficou rico como o antirez
(Texto de 2009)