« The Ronacher ManifestoSomebody needs to discover JSON »

Code overload

06/03/09

Permalink 01:47:57 pm, by fumanchu Email , 624 words   English (US)
Categories: IT, General

Code overload

I'm tired of codes.

By "code" I mean a mapping from one set of terms to another.

IDValue
1Active
2Inactive
3Closed

That's a code.

Codes are good for reducing space and/or time if you really need to. A 4-byte integer takes less space than an 8-byte+overhead string. 'grep -u' takes less typing than 'grep --unix-byte-offsets'

Codes are good if names vary. Internationalization techniques like gettext map various translations to a single key (often the phrase as rendered in the dominant language). But even within the same language, people change the names they use to refer to things all the time.

Codes are good at hiding information.

Whether you want them to or not.

That's a problem.

Because codes hide information, the user of the code, whether willing or not, has to have access to the code. That means either a copy of the mapping table in its entirety, or a copy of an algorithm for performing the mapping.

Some of these you can keep in your head, but there's only so much space in your head.

We invented paper to keep more of these than could fit in our brains, but paper is slower than brain.

We invented computers to manage the volume of paper but 'command --help' and 'man command' are still slower than brain.

If a code exists to save space but space becomes microscopically cheap, do you still need a code?

If a code exists to save a person time but the person wastes more time looking up the code than they save using it, do you still need a code?

If a code exists to save a computer time but the computer wastes more time looking up the code than it saves using it, do you still need a code?

Codes don't just introduce the cost of mapping. They're far worse. Codes take a domain A which has its own syntax (the relationship of one thing in the domain to another thing in the domain) and introduce a second domain B with its own syntax (again, within the domain), in addition to the new semantic (the relationship between domains). (A) <-> (B). That's 3 analytic elements in place of 1.

But it's even worse in information systems since domain A is probably already a set of names with its own set of referents to things in the real world R. So instead of (R) <-> (A) we now have (R) <-> (A) <-> (B). If I have to map from B to R, that's 6 sets of interactions I now need to understand. You're pushing the 7±2 boundary.

Names refer to things.

If you need a name to refer to a name, that's a code.

Codes add complexity.

If you have a choice, expose directly. Many of you don't have a choice because you still think the unix command line is the best UI ever. You need to get out more. There are UI's out there that can show you the mapping without interrupting your flow). Many of you don't have a choice because you think in C or some other close-to-the-metal language which requires manual memory management and lots of numbered wires. Please keep using codes there. But please don't bring them into high-level languages: we're better off without them.

My brain is full and I'm tired of being slowed down by codes that return worse than nothing for their investment. Please stop inventing new ones. I know, you're a computer scientist and that's what computer scientists do. But you're good at it (aren't you?), both authoring and using them. Most people aren't. The rest of us are busy.

3 comments

Comment from: Lakin Wecker [Visitor] Email · http://lakin.weckers.net

I have been meaning to write some blog posts entitled 'free your mind' for sometime now.

This is right in line with those as they would focus on the amount of esoteric 'facts' your dev environment forces you to keep in your head at once and how each item one must Keep interferes with their ability to concentrate on the real problem they are trying to Solve .

06/04/09 @ 00:22
Comment from: ed-hardy [Visitor] Email · http://www.ed-hardy.cc

If a code exists to save space but space becomes microscopically cheap, do you still need a code?
my answer is none.
http://www.ed-hardy.cc

06/16/09 @ 20:50
Comment from: Peter Fein [Visitor] · http://www.pobox.com/~pfein/

You said: Names refer to things.

I say: Names have power.

06/18/09 @ 00:33

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.

Please enter the phrase "I am a real human." in the textbox above.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
March 2017
Sun Mon Tue Wed Thu Fri Sat
 << <   > >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Search

The requested Blog doesn't exist any more!

XML Feeds

multiple blogs