drh++

Matts on 2006-04-13T17:22:16

D. Richard Hipp is a personal hero of mine. He needed a small lightweight database and couldn't find one he liked so he wrote his own. Today on the sqlite mailing list he posted this gem:

"Aaron Jones" wrote: > Hi, sorry to bother you, but I was wondering if you could tell me if you > designed SQlite using a Structured or Object-Oriented methodology please as > I am designing an interface to SQLite and my supervisor said if I knew what > methodology was used for designing SQLite this would be a good justification > for my choosing a methodology for designing the interface.

I have spent 20 minutes trying to think of a reasonable answer to your question and have come up with nothing. The best answer I have is this: Your question is based on multiple false premises and thus has no answer.

You assume that SQLite was designed using either a structure or an object-oriented procedure. (Methodology is a trendy word to use in that context, but when it is it is misused. "Design method" or "design procedure" is correct. "Design methodology" means the study of various design methods - not the design method itself.) This is false. I do not design use rigidly defined design methods found in books. Book-defined design methods generally lead to bloated designs that rarely work.

You assume that the design method used to build a component has some bearing on the design method used to build a user interface to that component. This is false. Either your instructor is wrong or your are misquoting him.

You should design your interface using whatever design method you are most comfortable with. Or (better) just design your interface using creativity and good sense and don't worry so much about rigidly defined design methods.
And there was an excellent follow up:
> You should design your interface using whatever design method > you are most comfortable with. Or (better) just design your > interface using creativity and good sense and don't worry so > much about rigidly defined design methods.

I had a little chuckle at this. I was reminded of the old PBS painting shows on TV that I used to watch. The artist would make "happy little trees" and flit about the canvas. His little dabs and whips of the paintbrush would transform into a wooded glade, a rushing river, mountains with the sun dancing off the edges ...

Of course, when I tried to do the same thing, it turned out like brown blobs. When your hand automatically knows how to turn, and the brushes are so familiar you know which one you have just by the feel of it, then you can paint with the freedom seen on the TV shows. Until then, you'll just make brown blobs.

It's the same with programming and programming languages, really. All the books you read and courses you take in college are just there to help you get familiar with the brushes and the canvas. They'll help keep you from making brown blobs, but you'll never make a masterpiece by the book.


Happy trees!

sigzero on 2006-04-13T19:28:35

I remember that guy! We both had an afro but I couldn't paint.

That was a great answer, a really good follow-up using a very vivid analogy.

Re:Happy trees!

Phred on 2006-04-13T19:32:31

Here's a link to his site. I used to watch him when I was a kid.

Re:Happy trees!

dug on 2006-04-13T19:37:47

Ahh, let us all fade into the couch and watch the "pretty little 'm' birds" fly into the sunset.

-- Douglas Hunter

For those of us who like citations…

Aristotle on 2006-04-13T22:32:20

(As an aside, DRH’s first paragraph could be summed up as simply “Mu.”)