Fabrice Bellard: Biografie (2009)
(ipaidia.gr)- Der französische Programmierer Fabrice Bellard gilt als einer der einflussreichsten Entwickler der letzten 20 Jahre und hat zahlreiche innovative Projekte als Open-Source-Software veröffentlicht
- Schon in jungen Jahren widmete er sich Elektronik und Low-Level-Programmierung und erzielte mit 15 seinen ersten Erfolg mit dem ausführbaren Dateikomprimierer LZEXE
- Später erhielt er an der École Polytechnique eine breite Ingenieurausbildung und baute ein tiefes Verständnis für mathematische Berechnungen und Computerarchitektur auf
- Zu seinen wichtigsten Werken zählen FFmpeg, TinyCC und QEMU; insbesondere QEMU etablierte sich als Schlüsseltechnologie im Bereich Virtualisierung und Prozessor-Emulation
- Er gilt als Entwickler, der die Philosophie Freier Software lebt und technisches Interesse sowie das Teilen von Wissen höher bewertet als finanziellen Gewinn
Frühes Leben und Einstieg ins Programmieren
- 1972 im französischen Grenoble geboren und in Montpellier aufgewachsen
- Schon als Kind zeigte er Interesse an Elektronik; sein erstes Wort soll „magnétophone“ (Kassettenrekorder) gewesen sein
- Mit 9 Jahren begann er mit dem Programmieren auf einem programmierbaren TI-59-Taschenrechner
- Trotz begrenzter Anzeige und eingeschränktem Zeichensatz lernte er dabei High-Level-Konzepte wie Schleifen kennen und entwickelte ein Gespür für Low-Level-Code
- Mit 11 nutzte er den Heimcomputer TI-99/4A und weitete seine Programmierung mit TI BASIC aus
- Durch die Struktur, in der pro Zeile nur ein Befehl eingegeben werden konnte, gelang der natürliche Übergang von der Taschenrechner- zur Computerprogrammierung
LZEXE und frühe Erfolge
- Mit 15 kaufte er einen Amstrad PC1512 und begann ernsthaft mit der Entwicklungsarbeit
- Um Speicherplatzbeschränkungen zu lösen, entwickelte er den ausführbaren Dateikomprimierer LZEXE
- Er schrieb den LZSS-Algorithmus in 8086-Assembler neu und erreichte so schnelle Kompression und Dekompression
- Über BBS verbreitet, wurde das Programm sofort ein Erfolg
Ausbildung an der École Polytechnique
- Aufnahme an die renommierte französische École Polytechnique (X)
- Fünfjähriger Ingenieurstudiengang, einschließlich eines Jahres Militärdienst
- Breite Allgemein- und Technikausbildung mit Schwerpunkt auf kritischem Denken und interdisziplinären Fähigkeiten
- Bellard festigte durch diese Ausbildung die Bedeutung von Computerarchitektur und Berechnungstheorie
- Er betonte, dass Assembler und Hardwareverständnis unverzichtbar seien
Mathematische Forschung und Algorithmusentwicklung
- 1995 Einstieg in die Forschung an numerischen Algorithmen durch eine C-Implementierung von Pollards FFT-Multiplikationsmethode
- Mithilfe von FFT (Fast Fourier Transform) für algebraische Berechnungen führte er Berechnungen von π auf mehrere Millionen Stellen durch
- 1997 veröffentlichte er eine Formel zur Berechnung der n-ten binären Stelle von π
- Verbesserung auf O(n²) Komplexität und damit 43 % schneller als die bestehende Bailey–Borwein–Plouffe-Formel
VReng und TinyGL
- 1998 entwickelte er als Studentenprojekt VReng (Virtual Reality Engine)
- Eine Engine zur Erkundung virtueller 3D-Welten auf Basis von Internet-Multicast
- Anschließend entwickelte er TinyGL, um Ineffizienzen von OpenGL zu verbessern
- Ein leichtgewichtiger 3D-Renderer mit 40 KB Größe, deutlich schneller als Mesa und plattformunabhängig
Die Entstehung von FFmpeg
- 2000 startete er unter dem Pseudonym „Gerard Lantau“ das Projekt FFmpeg
- Ein Werkzeug für Encoding, Decoding, Streaming und Konvertierung von Audio und Video
- Bestehend aus libavcodec (Codec-Bibliothek) und libavformat (Bibliothek zur Containerverarbeitung)
- FFmpeg unterstützt Konvertierungen zwischen zahlreichen Formaten und wurde in unzählige Multimedia-Programme wie VLC integriert
IOCCC-Auszeichnung und TinyCC
- 2000 gewann er den International Obfuscated C Code Contest (IOCCC)
- Er implementierte einen C-Compiler mit weniger als 4 KB, aus dem später TinyCC hervorging
- TinyCC ist ein ultrakompakter, zu ANSI C99 kompatibler Compiler, der den Linux-Kernel in unter 15 Sekunden bauen kann
- Das zweite Gewinnerprogramm von 2001 war ein Programm zur Primzahlberechnung mit einer Größe von 475 Byte
- Mithilfe eines FFT-basierten Algorithmus berechnete es schnell Primzahlen mit mehreren Millionen Stellen
QEMU und Innovationen in der Virtualisierung
- 2005 stellte er QEMU vor, das Prozessorarchitekturen in Software emuliert
- Durch dynamische Übersetzung (dynamic translation) werden Befehlsblöcke gebündelt, übersetzt und zwischengespeichert, was die Performance verbessert
- In bestimmten Situationen wird nahezu native Geschwindigkeit erreicht
- QEMU wurde später als zentrale Komponente in wichtigen Virtualisierungstechnologien wie VirtualBox, Xen und KVM eingesetzt
Philosophie Freier Software und Entwicklungsstil
- Bellard veröffentlichte alle seine wichtigen Projekte unter Lizenzen für Freie Software
- Er priorisierte Interesse und Nutzen vor finanziellem Gewinn und legte großen Wert auf das Teilen von Quellcode
- Statt administrativer und kommunikativer Aufgaben konzentrierte er sich auf reine Entwicklungsarbeit
- Auf die Frage, warum er sich so vielen verschiedenen Themen widmet, sagte er, dass es langweilig werde, immer dieselbe Arbeit zu wiederholen
Sicht auf die Informatik und Ratschläge
- Er unterschied in der Informatik zwischen praktischer Forschung (Anwendung) und theoretischer Forschung (Berechnungstheorie)
- Er betonte, dass es wichtig sei, in beiden Bereichen die Grenzen zu erweitern
- Jüngeren Entwicklern empfahl er grundlegende Theorie und Hardwareverständnis
- Für das Lernen von Algorithmen empfahl er Donald Knuths „The Art of Computer Programming“
- Zu seinen damaligen laufenden Forschungen gehörten digitale Signalverarbeitung mit Multicore-Prozessoren, insbesondere Projekte rund um Software Defined Radio
1 Kommentare
Hacker-News-Kommentare
Er ist definitiv eine Figur auf GOAT-Niveau, aber dieser Text wirkt, als wäre er von jemandem geschrieben worden, der von Software Engineering nicht viel versteht
Zum Beispiel wird QEMUs Code-Translation-Caching als „der erste Emulator mit nativer Leistung“ beschrieben, dabei gibt es JIT-Technik schon sehr viel länger
Sie verfolgten einen Multipass-Ansatz, bei dem Instruktionen mehrfach durchlaufen und dabei schrittweise stärker optimiert wurden, sodass die Geschwindigkeit mit zunehmender Nutzung anstieg
Das schmälert Bellards Leistung natürlich nicht, aber Fakten sind Fakten
ffmpeg und QEMU innerhalb von fünf Jahren zu veröffentlichen und dazu auch noch zweimal die IOCCC zu gewinnen, ist wirklich eine absurde Leistung
Diese Biografie enthält über diesen legendären Programmierer mehr neue Informationen als jeder andere Text, den ich bisher gesehen habe
Auch danach arbeitete er noch an einer 5G-Basisstation auf PC-Hardware-Basis und an LLM-bezogenen Projekten
Ehrlich gesagt frage ich mich, ob Fabrice Bellard angefangen hat, LLM-Coding-Tools zu verwenden
Falls ja, wäre er noch produktiver, und das wäre fast schon beängstigend
Er hat bereits zu LLM-Kompression geforscht und programmiert hauptsächlich in C
Wer seit Jahrzehnten C verwendet, kann den Großteil seines Codes im Kopf behalten und wiederverwenden
Deshalb könnten LLMs für ihn gar nicht so hilfreich sein
Eher würde ich vermuten, dass er ein eigenes LLM auf seinem Code trainiert — vielleicht entwickelt sich das zu einem kostenpflichtigen, nicht öffentlichen Projekt wie beim LTE-Projekt
Sein Code ist präzise und systematisch und völlig anders als der Code, den KI oft erzeugt
Er ist jemand, der die gesamte Struktur eines Programms im Kopf entwirft und dann daran arbeitet
Deshalb vermuten manche, er sei mehrere Personen oder benutze LLMs, aber vermutlich lacht er über solche Vorstellungen nur
Mit der jüngsten Veröffentlichung von MicroQuickJS ist er nun in die Lage geraten, immer wieder „legendäre Ergebnisse“ liefern zu müssen
Die Leute erwarten von ihm ständig etwas Großartiges
Ich frage mich, ob Bellard so reich geworden ist wie antirez
(Ein Text aus dem Jahr 2009)