The Boy Who Could Change the World (14 page)

BOOK: The Boy Who Could Change the World
9.02Mb size Format: txt, pdf, ePub
ads

djb

http://www.aaronsw.com/weblog/djb

October 19, 2009

Age 22

I think it's time to remind people that D. J. Bernstein is the greatest programmer in the history of the world.

First, look only at the objective facts. djb has written two major pieces of system software: a mail server and a DNS server. Both are run by millions of Internet domains. They accomplish all sorts of complicated functions, work under incredibly high loads, and confront no end of unusual situations. And they both run pretty much exactly as Bernstein first wrote them. One bug—one bug!—was found in qmail. A second bug was recently found in djbdns, but you can get a sense of how important it is by the fact that it took people nearly a decade to find it.

No other programmer has this kind of track record. Donald Knuth probably comes closest, but his diary about writing TeX (printed in
Literate Programming
) shows how he kept finding bugs for years and never expected to be finished, only to get closer and closer (thus the odd version numbering scheme). Not only does no one else have djb's track record, no one else even comes close.

But far more important are the subjective factors. djb's programs are some of the greatest works of beauty to be comprehended by the human mind. As with great art, the outline of the code is somehow visually pleasing—there is balance and rhythm and meter that rivals even the best typography. As with great poetry, every character counts—every single one is there because it needs to be. But these programs are not just for being seen or read—like a graceful dancer, they move! And not just as a single dancer either, but a whole choreographed
number—processes splitting and moving and recombining at great speeds, around and around again.

But, unlike a dance, this movement has a purpose. They accomplish things that need accomplishing—they find your websites, they ferry your email from place to place. In the most fantastic movies, the routing and sorting of the post office is imagined as a giant endless choreographed dance number. (Imagine, perhaps, “The Office” from Brazil.) But this is no one-time fantasy, this is how your email gets sorted every day.

And the dance is not just there to please human eyes—it is a dance with a purpose. Each of its inner mechanisms is perfectly crafted, using the fewest number of moving parts, accomplishing its task with the most minimal energy. The way jobs are divided and assigned is nothing short of brilliant. The brilliance is not merely linguistic, although it is that too, but contains a kind of elegant mathematical effectiveness, backed by a stream of numbers and equations that show, through pure reason alone, that the movements are provably perfect, a better solution is guaranteed not to exist.

But even all this does not capture his software's incredible beauty. For djb's programs are not great machines to be admired from a distance, vast powerhouses of elegant accomplishment. They are also tools meant to be used by man, perfectly fitted to one's hand. Like a great piece of industrial design, they bring joy to the user every time they are used.

What other field combines all these arts? Language, math, art, design, function. Programming is clearly in a class of its own. And, when it comes to programmers, who even competes with djb? Who else has worked to realize these amazing possibilities? Who else even knows they are there?

Oddly, there are many people who profess to hate djb. Some of this is just the general distaste of genius: djb clearly has a forceful, uncompromising vision, which many misinterpret as arrogance and rudeness. And some of it is the practical man's disregard for great design: djb's programs do not work like most programs, for the simple reason that the way most programs work is wrong. But the animosity goes much deeper than that. I do not profess to understand it, but I do honestly suspect at some level it's people without taste angry and
frustrated at the plaudits showered on what they cannot see. Great art always generates its share of mocking detractors.

This is not to say that djb's work is perfect. There are the bugs, as mentioned before, and the log files, which are nothing if not inelegant, and no doubt djb would make numerous changes were he to write the software again today. But who else is even trying? Who else even knows this is possible? I did not realize what great art in software could be until I read djb. And now I feel dirty reading anything else.

A Non-Programmer's Apology

http://www.aaronsw.com/weblog/nonapology

May 27, 2006

Age 19

In his classic
A Mathematician's Apology
, published 65 years ago, the great mathematician G. H. Hardy wrote that “A man who sets out to justify his existence and his activities” has only one real defense, namely that “I do what I do because it is the one and only thing that I can do at all well.” “I am not suggesting,” he added,

            
that this is a defence which can be made by most people, since most people can do nothing at all well. But it is impregnable when it can be made without absurdity. . . . If a man has any genuine talent he should be ready to make almost any sacrifice in order to cultivate it to the full.

Reading such comments one cannot help but apply them to oneself, and so I did. Let us eschew humility for the sake of argument and suppose that I am a great programmer. By Hardy's suggestion, the responsible thing for me to do would be to cultivate and use my talents in that field, to spend my life being a great programmer. And that, I have to say, is a prospect I look upon with no small amount of dread.

It was not always quite this way. For quite a while programming was basically my life. And then, somehow, I drifted away. At first it was small steps—discussing programming instead of doing it, then discussing things for programmers, and then discussing other topics altogether. By the time I reached the end of my first year in college, when people were asking me to program for them over the summer, I
hadn't programmed in so long that I wasn't even sure I really could. I certainly did not think of myself as a particularly good programmer.

Ironic, considering Hardy writes that

            
Good work is not done by “humble” men. It is one of the first duties of a professor, for example, in any subject, to exaggerate a little both the importance of his subject and his own importance in it. A man who is always asking “Is what I do worthwhile?” and “Am I the right person to do it?” will always be ineffective himself and a discouragement to others. He must shut his eyes a little and think a little more of his subject and himself than they deserve. This is not too difficult: it is harder not to make his subject and himself ridiculous by shutting his eyes too tightly.

Perhaps, after spending so much time not programming, the blinders had worn off. Or perhaps it was the reverse: that I had to convince myself that I was good at what I was doing now, and, since that thing was not programming, by extension, that I was not very good at programming.

Whatever the reason, I looked upon the task of actually having to program for three months with uncertainty and trepidation. For days, if I recall correctly, I dithered. Thinking myself incapable of serious programming, I thought to wait until my partner arrived and instead spend my time assisting him. But days passed and I realized it would be weeks before he would appear, and I finally decided to try to program something in the meantime.

To my shock, it went amazingly well and I have since become convinced that I'm a pretty good programmer, if lacking in most other areas. But now I find myself faced with this dilemma: it is those other areas I would much prefer to work in.

The summer before college I learned something that struck me as incredibly important and yet known by very few. It seemed clear to me that the only responsible way to live my life would be to do something that would only be done by someone who knew this
thing—after all, there were few who did and many who didn't, so it seemed logical to leave most other tasks to the majority.

I concluded that the best thing to do would be to attempt to explain this thing I'd learned to others. Any specific task I could do with the knowledge would be far outweighed by the tasks done by those I'd explained the knowledge to.
*
*
It was only after I'd decided on this course of action (and perhaps this is the blinders once again) that it struck me that explaining complicated ideas was actually something I'd always loved doing and was really pretty good at.

That aside, having spent the morning reading David Foster Wallace, it is plain that I am no great writer.
†
†
And so, reading Hardy, I am left wondering whether my decision is somehow irresponsible.

I am saved, I think, because it appears that Hardy's logic to some extent parallels mine. Why is it important for the man who “can bat unusually well” to become “a professional cricketer”? It is, presumably, because those who can bat unusually well are in short supply and so the few who are gifted with that talent should do us all the favor of making use of it. If those whose “judgment of the markets is quick and sound” become cricketers, while the good batters become stockbrokers, we will end up with mediocre cricketers and mediocre stockbrokers. Better for all of us if the reverse is the case.

But this, of course, is awfully similar to the logic I myself employed. It is important for me to spend my life explaining what I'd learned because people who had learned it are in short supply—much shorter supply, in fact (or so it appears), than people who can bat well.

However, there is also an assumption hidden in that statement. It only makes sense to decide what to become based on what you can presently do if you believe that abilities are somehow granted innately and can merely be cultivated, not created in themselves. This is a fairly common view, although rarely consciously articulated (as indeed Hardy takes it for granted), but not one that I subscribe to.

Instead, it seems plausible that talent is made through practice, that those who are good batters are that way after spending enormous quantities of time batting as a kid.
*
*
Mozart, for example, was the son of “one of Europe's leading musical teachers”
†
†
and said teacher began music instruction at age three. While I am plainly no Mozart, several similarities do seem apparent. My father had a computer programming company and he began showing me how to use the computer as far back as I can remember.

The extreme conclusion from the theory that there is no innate talent is that there is no difference between people and thus, as much as possible, we should get people to do the most important tasks (writing, as opposed to cricket, let's say). But in fact this does not follow.

Learning is like compound interest. A little bit of knowledge makes it easier to pick up more. Knowing what addition is and how to do it, you can then read a wide variety of things that use addition, thus knowing even more and being able to use that knowledge in a similar manner.
‡
‡
And so, the growth in knowledge accelerates.
§
§
This is why children who get started on something at a young age, as Mozart did, grow up to have such an advantage.

And even if (highly implausibly) we were able to control the circumstances
in which all children grew up so as to maximize their ability to perform the most important tasks, that still would not be enough, since in addition to aptitude there is also interest.

Imagine the three sons of a famous football player. All three are raised similarly, with athletic activity from their earliest days, and thus have an equal aptitude for playing football. Two of them pick up this task excitedly, while one, despite being good at it, is uninterested
*
*
and prefers to read books.
†
†
It would not only be unfair to force him to use his aptitude and play football, it would also be unwise. Someone whose heart isn't in it is unlikely to spend the time necessary to excel.

And this, in short,
‡
‡
is the position I find myself in. I don't want to be a programmer. When I look at programming books, I am more tempted to mock them than to read them. When I go to programmer conferences, I'd rather skip out and talk politics than programming. And writing code, although it can be enjoyable, is hardly something I want to spend my life doing.

Perhaps, I fear, this decision deprives society of one great programmer in favor of one mediocre writer. And let's not hide behind the cloak of uncertainty; let's say we know that it does. Even so, I would make it. The writing is too important, the programming too unenjoyable.

And for that, I apologize.

*
Explaining what that knowledge is, naturally, a larger project and must wait for another time.

†
You can probably see DFW's influence on this piece, not least of which in these footnotes.

*
Indeed, this apparently parallels the views of the psychologists who have studied the question. Anders Ericsson, a psychology professor who studies “expert performance,” told the
New York Times Magazine
that “the most general claim” in his work “is that a lot of people believe there are some inherent limits they were born with. But there is surprisingly little hard evidence. . . .” The conclusion that follows, the
NYTM
notes, is that “when it comes to choosing a life path, you should do what you love—because if you don't love it, you are unlikely to work hard enough to get very good. Most people naturally don't like to do things they aren't ‘good' at. So they often give up, telling themselves they simply don't possess the talent for math or skiing or the violin. But what they really lack is the desire to be good and to undertake the deliberate practice that would make them better.”

†
The quote is
from Wikipedia
where, indeed, the other facts are drawn from as well, the idea having been suggested by Stephen Jay Gould's essay “Mozart and Modularity,” collected in his book
Eight Little Piggies
.

‡
I've always thought that this was the reason kids (or maybe just me) especially disliked history. Every other field—biology, math, art—had at least some connection to the present and thus kids had some foundational knowledge to build on. But history? We simply weren't there and thus know absolutely nothing of it.

§
It was tempting to write that “the rate of growth” accelerates, but that would mean something rather different.

*
Many people, of course, are uninterested in such things precisely because they aren't very good at them. There's nothing like repeated failures to turn you away from an activity. Perhaps this is another reason to start young—young children might be less stung by failure, as little is expected from them.

†
I apologize for the clichédness of this example.

‡
Well, shorter than most DFW.

BOOK: The Boy Who Could Change the World
9.02Mb size Format: txt, pdf, ePub
ads

Other books

Unknown (Hooked Book 3) by Charity Parkerson
New York at War by Steven H. Jaffe
One Night by Eric Jerome Dickey
Millionaire in a Stetson by Barbara Dunlop
Mr Forster's Fortune by Church, Lizzie
Hero's Curse by Lee, Jack J.
1958 - The World in My Pocket by James Hadley Chase
Public Enemy by Bill Ayers