See section 8 of http://cr.yp.to/cv/activities-20050107.pdf
There are more people who aims to write bug-free programs, but most of them seem to use formal verification. djb seems pretty unique in aiming bug-free programs in normal programming and getting close.
Re: Bellard software quality. Fuzzing found 1120 bugs in FFmpeg. While Bellard's code is only small part of entire FFmpeg, FFmpeg is very far from being bug-free.
http://googleonlinesecurity.blogspot.com/2014/01/ffmpeg-and-...
Of course, printf() does have a return value ("Upon successful return, these functions return the number of characters printed"), and it can fail... but it takes a considerable consistency of purpose to decide to deal with that possibility explicitly every single time.
void die_write()
{
substdio_putsflush(subfderr,"qmail-pw2u: fatal: unable to write output\n");
_exit(111);
}
/* ... */
if (substdio_puts(subfdout,uugh) == -1) die_write();
if (substdio_puts(subfdout,dashcolon) == -1) die_write();
if (substdio_put(subfdout,x,i) == -1) die_write();
/* ... */Last sentence in the paper:
"I won't be satisfied until I've put the entire security industry out of work."
That's nothing short of amazing.
> Bug-elimination research, like other user-interface research, is highly nonmathematical. The goal is to have users, in this case programmers, make as few mistakes as possible in achieving their desired effects. We don’t have any way to model this—to model human psychology—except by experiment. We can’t even recognize mistakes without a human’s help. (If you can write a program to recognize a class of mistakes, great—we’ll incorporate your program into the user interface, eliminating those mistakes—but we still won’t be able to recognize the remaining mistakes.) I’ve seen many mathematicians bothered by this lack of formalization; they ask nonsensical questions like “How can you prove that you don’t have any bugs?” So I sneak out of the department, take off my mathematician’s hat, and continue making progress towards the goal.
Bellard is what you use on your laptop to have fun, DJB is what you run in your bank to make the world go round.
I spent quite some months learning about editors and one of my evening distractions was to write a new UI backend for qemacs. I found the design clever, quite flexible, etc, but in no-way easy to read or elegant. (To be fair, it did not help that he added a video player and a WYSIWYG html editor to it).
Later I came to a Vim clone called vis (https://github.com/martanne/vis) and I found the source code more close to those programs where you think "It can't be made simpler".
I wish future programmers read more code before writing just like literature writers do. It should be part of the education system and I regret not having read "classics" before starting writing.
(It won, of course. http://bellard.org/otcc/)
Fabrice Bellard is smart, though his code is hard to read imo.