premature optimization

by phil on Sunday Apr 3, 2005 11:51 PM

And yet every May, speakers all over the country fire up the Standard Graduation Speech, the theme of which is: don't give up on your dreams. I know what they mean, but this is a bad way to put it, because it implies you're supposed to be bound by some plan you made early on. The computer world has a name for this: premature optimization. And it is synonymous with disaster. These speakers would do better to say simply, don't give up.


Rebellion is almost as stupid as obedience. In either case you let yourself be defined by what they tell you to do. The best plan, I think, is to step onto an orthogonal vector. Don't just do what they tell you, and don't just refuse to.


- Paul Graham

UPDATE: there's another link going around, called Dabblers and Blowhards that debunks Paul Graham's work in the book "Hackers and Painters." In there, there are some passing references to Paul Graham's naieve enamoration with Renaissance arts. Yeah, the "glory of the Renaissance" is a myth trumped up by High School teachers and the taste of people with a simple appreciation of art. To them, the only aesthetic sensation worth appreciating is, "man, that would be really hard for me to have done," even if there is more skill involved in a Motherwell than there is in a Michelangelo. True, having a Motherwell to look at, it's easier to duplicate than the Sistine Chapel. But, before that, which would have required more creativity? Renaissance painting is more like amanuensis (manuscript transcribing), than it is serendipity.

UPDATE2: I actually side with Graham on hacking being like painting in the amount of inspiration involved. It's important to read, in Graham's essay, the distinction between engineering, science, and hacking, all of which gets glued into one big umbrella Computer Science.

like anything I say matters.


Bob said on April 4, 2005 8:41 AM:

I've always loved that piece; the first point seems like one made by extreme programming and rapid prototyping, that you never know what you'll need until you need it.

I love this definition of a shopping list: "A theory of what I will want in the future".

And the Graham's second point sounds like "don't quit your day job":

Innovation is a lifestyle, not a job. Learn to live that way and you'll always be fine...

James said on April 7, 2005 12:13 AM:

If the internets have taught us anything, it's that everything that you say matters a great deal. You are important, which a special and unique voice which deserves to be heard. Just like everyone else.

Creative Commons License