Off On a Tangent

A web of tangents that somehow unify.

Friday, March 25, 2005

Intelligent code

Most developers I know, usually myself included, loathe working with software code that tries to be intelligent on your behalf. Most especially if that code was written by someone else. Inevitably, the "intelligent" code gets in the way more than it helps you, due to it making all kinds of hidden assumptions you are unaware of. You, as the developer, are forced to adapt your normal coding habits to work with these assumptions that originated in a foreign mind.

The problem of hidden assumptions in "intelligent" code is similar to the problem of hidden assumptions in crappy code. Maybe not similar, maybe they are the same.

But, who of us hasn't written our own intelligent code, and then gone on to use it happily, patting ourselves on the back for making our own lives so much easier. When we're aware of the assumptions (after all, we put them there) and work with them, suddenly they start working for us.

I dream of using intelligent code that makes my life easier, and that others find equally useful. In my job, I try stick to writing dumb code that doesn't outsmart you. At home though, and in open source, I strive to create that perfect beast - intelligent code that helps you more than it annoys.

And that's one reason why I like open source so much - we don't have to fear failure. Our jobs aren't at stake. We can make miserable code 9 times out of 10, but on that tenth, maybe we've created something startling and eye-opening.

0 Comments:

Post a Comment

<< Home