Fabrice Bellard: Portrait of a Super-Productive Programmer
Posted by Cameron Laird on Mon, Mar 21, 2011 @ 03:28 AM
Hollywood portrayals of computing superstars are more rooted in comic-book super-heroics than the realities of software development. Except that in programming, superpowers do exist. Fabrice Bellard has them.
Computing in the movies is hard to recognize: Typographical errors are non-existent, crackers break through tested defenses in seconds, and practitioners create twenty-function-point programs in fewer keystrokes than the count of bullets whizzing by their heads. Hollywood portrayals are more rooted in comic-book superheroics than the realities of software development.
Except that in programming, superpowers do exist. Fabrice Bellard has them.
Serial achiever
What other description can there be when one man successively produces a dozen important and widely-used software applications? Look at the (partial) record:- 1997: Publication of Bellard’s formula for computation of digits of pi
- 2000: Calculation of the largest-known prime. (Make sure you read this one—the source code is only 438 bytes long.)
- 2001: A self-compiling compiler of a subset of C that fits in 3 kilobytes of memory
- 2004: TinyCC Boot Loader
Every one of these would be a proud accomplishment in any programming career. To produce so many, and so consistently, is very, very rare.
A bit of background provides the context to understand this record clearly. It’s common in programming folklore to talk about how a particular program was pulled together in one intense weekend, or during a vacation interval. Many of these tales are true, as far as they go; several of the best-known programs were first launched with a specific effort of just a few days. This leads some to expect that those few days define the life cycle of program development: A sufficiently clever programmer can create the Linux kernel this holiday season, take the next weekend off to invent the Ruby programming language, build an award-winning iPad game the following month, and so on.
It’s not so. Just because top sprinters finish a hundred meters in under ten seconds doesn’t mean they sustain that pace for the duration of a marathon. When Bellard wrote LZEXE, for example, he created a program that performed the data compression he needed at one particular time (it was the first widely-used executable file compressor for MS-DOS).
What’s notable is that he also invested the follow-up effort to ensure the software was engineered well-enough to work on other computers and on multiple operating systems, could be understood and maintained by others, was adequately documented, licensed to be useful, and so on. All those apparently secondary activities typically take orders of magnitude more time than the original coding at the heart of a successful program.
Bellard isn’t unique as much for being a smart guy who has clever ideas about programs—although he certainly is and does—but for his achievement in refining and crafting those ideas into programs that make sense to others. He consistently creates applications that other programmers want to use and enhance.
Think about QEMU, for example. Like all Bellard’s best-known programs, it’s freely-available under the GNU Public License (GPL) or a close relative, originally developed under Linux, broadly portable, and now mostly maintained by others. Several programs preceded QEMU and roughly fit its description as “a generic and open source machine emulator and virtualizer;” QEMU, though, like many of Bellard’s creations, combines performance, robustness, portability, and flexibility in a way that none of its ancestors or rivals matched. Bellard’s contribution wasn’t to create the idea of a machine emulator, but to envision how to engineer one well enough to move it from the classroom or laboratory to “working-class” developers’ and testers’ toolboxes. It’s now indispensable to many testing teams, who can leverage QEMU to manage hundreds of distinct computing environments from a single underlying physical computer.
Finding a balance
Bellard seems to balance nicely between extremes that threaten productivity. His techniques are modern without being faddish, and careful, yet not neurotic. While he moves every few years into new and fertile unconquered territory, he exercises patterns that have served him well over and over: cleanly-styled C, data compression, numerical methods, signal processing, pertinent abstractions, media formats, open-source licensing, and “by-hand parsing.”Bellard doesn’t appear to promote himself—he politely declined to be interviewed for this profile, for example—but others enthusiastically adopt his creations. Among the 654 Copyright notices QEMU 0.13.0 source code embeds, 216 are his. To put that another way: He was successful enough with QEMU during its first few years to entice others to put in over twice as much work (by this crude measure) as he has!
Bellard, born in 1972, began practicing his own coding techniques first on a TI-59 scientific calculator, at the beginning of the ‘80s. Many of the projects listed above, along with others in his portfolio, originated as student assignments at l'École Polytechnique, where he matriculated in 1990. TinyGL, for example, derives from the VReng Virtual Reality Engine distributed 3D application he began in 1998. Based on this experience, he eventually created and released in 2002 TinyGL as a very fast, very compact re-implementation of a substantial subset of OpenGL.
Similarly, his recent and relatively well-publicized calculation of several trillion (!) digits of pi was performed on a single desktop computer. Previous record-setting calculations of this class were done on million-dollar supercomputers. Bellard made it seem natural to pull together his mathematical insight, broad experience at instruction-level coding, and careful engineering to advance the field this way. The roots of the achievement reflect back to his experiments on a hand-held programmable calculator at the age of nine .
To describe fully even one of the projects already mentioned is beyond the scope of an article such as this; it would take several books to capture all that Bellard has already contributed, and at least another to explain how he works. A few broad conclusions are possible, though:
- As has often been observed before, the very best programmers are far, far more productive than the average, able to produce multiples of the usable output of others;
- While it’s unrealistic to predict how programming would look without Fabrice Bellard or open-source licensing, there can be no doubt that such programs as QEMU, LZEXE, and FFmpeg are in pervasive use thousands of times each day around the world now; and
- If there’s a secret to this superhero-level productivity, it appears to have less to do with comic-book mutation and radioactivity, and far more with discipline, confidence, rigor, and many years of practice.
How do you use FFmpeg or QEMU or his other productions? Tell me about it in the comments. Even more important: What great program will you write next? What obstacles to superproductivity do you face?
See also:
- Top 5 Developer Skills That Will Get You Hired or Promoted
- What Wayland Means for Developers
- 14 Ways to Contribute to Open Source without Being a Programming Genius or a Rock Star