The implicit versus the explicit

June 22, 2008

In a lot of computer things (such as programming languages, or system environments) we have the choice between being concise and leaving things implicit, and being verbose but making things explicit. Here is the thing about this choice:

Computers are fine with implicit things because they never forget; they effectively have perfect memories for this sort of thing. But humans have limited memories (especially short term memories) that have to be periodically reinforced, so we necessarily forget some of the implicit stuff every so often. Which periodically causes problems.

(The problems of modal interfaces are another example of this, since the computer has a perfect 'memory' of what mode you are in but people do not.)

Obviously, the more implicit things you design into a system, the more dangerous this effect is (or at least the more likely it is to come up). At the same time, we can't make everything always be explicit; there's always some implicit stuff somewhere (even just in common user interfaces) and conciseness has a value of its own.

Like many of these issues, it is easy for the designers of a system to not really be conscious of how much implicitness is present; their memory for its implicit details is in great shape and is constantly being reinforced because they work deeply with the system all the time. Similarly, frequent users are also reinforcing their memory all the time.

Written on 22 June 2008.
« A bug reporting paradox: don't put in too much detail
More thinking about Python's inheritance model »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun Jun 22 01:27:18 2008
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.