I originally wrote this as part of a kragen-journal post in 2001; this
is a lightly edited version of part of
http://lists.canonical.org/pipermail/kragen-journal/2001-February/000475.html

I've said several times that I prefer low-tech stuff, much to the
shock of some of my co-workers; I'm not sure how to explain this
adequately.

The more I work with computers, the more I realize that complexity has
hidden costs --- complex things are less reliable, fail in more
unpredictable ways, are harder to diagnose problems in, are often
harder to fix, are usually more trouble to keep running, are harder to
change (especially to change without breaking), and are harder to get
to work with other things.  These alone are significant reasons to
prefer a simpler solution to a more complex one unless the complex
solution has significant advantages.

But there's a nastier side to it, too.  Complex things hide the
intentions of their makers better.  There's an interesting power
relationship set up between a craftsman and the users of his work
products: the work products are subject to the whim of the users, but
also, the users are subject to the whims of the work products.

This is a given in architecture: our mental state and behavior are
powerfully affected by our surroundings; by manipulating people's
surroundings, we can control what is easy and hard for them to do, and
therefore, what they will do.

So when you're interacting with an artifact, your control over your
environment is directly limited by the extent of your control over
that artifact.  To the extent that you don't control the artifact, but
are controlled by it, you are under the control of the artifact's
creator.

For example, I watched my ex-girlfriend Jamie deleting her spam one day.
She used Outlook Express, which displayed each message as soon as she
highlighted it in the message index.  Because nearly all of her spam was
HTML spam, it transmitted back signals to its senders (via "web bugs")
that indicate that she had read it, and therefore that her address was a
valid, deliverable address --- simply because she had highlighted it in
order to delete it.

I suggested to her that she should not view the spam before deleting
it.  Unfortunately, neither of us knew how to tell Outlook Express not
to view a message when it was highlighted in the index, nor how to
delete a single message without highlighting it; our ignorance made us
powerless and subjugated her to the designs of the Microsoft engineers
who wrote the program --- and, by extension, to the mentally crippled
morality-disabled vomit-lapping spammers who exploit its careless
intrusion on her privacy.

This is a fairly innocent example; the only negative consequence is
that her email address became less useful as time goes on, making it
impossible for her to maintain very-infrequent email correspondences
as an inadvertent result of a UI design choice.  Not every harmful
design choice is so innocent --- case in point: the version-to-version
minor incompatibilities of Microsoft Office programs, which force you
to upgrade your whole office, and which eventually render old
documents unreadable --- and not every harmful design choice has such
limited effects.

As a result of many experiences like this, I do my best to use
software that is as simple as possible.  Maybe I'm too paranoid.  Or
maybe I'm just sensible, while many other people are blinded by the
coolness of the stuff they're using.  Only time and comp.risks will
tell.

I'd really like to work in an operating environment simple enough that
I could actually read and understand every line of code, and flexible
enough that I could easily change whatever I didn't like.  It seems
that it should be possible to build a mailreader, web browser, HTML
editor, web server, GUI, and preemptively-multitasking OS, all in
100 000 lines of code or so.  Viewpoints Research Institute has just
gotten NSF funding to try to do this in 20 000 lines of code, but as I
understand it, they are going to skip the web-browser part because they
don't like the architecture of the web.

I argued once that GUI programming is inherently harder than text-mode
programming.  Derek Robinson disagreed with me; he said that
programming with the DOM in MSIE5, which one could certainly conceive
as a kind of GUI programming, was far easier than programming with any
GUI toolkit, or even in text mode, than anything he'd ever done
before.  I think he's right.

Reply via email to