7. design rules


7.1 What was the problem with the synthesis example comparing a command language interface with a visual interface? Can you suggest a fix to make a visual interface really immediately honest?


To demonstrate the principle of synthesizability within learnability, it was stated in this example that a visual interface to a file management system provided immediate information about the changed location of some file after a move operation performed by the user. In contrast, a command language interface requires the user to remember the directory to which a file is moved and explicitly issue commands to browse the directory to verify that the file has been moved. To be really sure that a move occurred, the user would also have to browse the original directory to determine that the file was no longer there. The fallacy in this argument is the assumption that visual file management systems always provide information about the new whereabouts of a moved file. To take a counterexample using the Macintosh instance from the text, if a file is moved from an open folder (in which the contents of the folder are revealed to the user) to a closed folder (contents not revealed), then the location of the moved file is not indicated to the user unless she remembers to open up the destination folder to reveal its contents. This is an example of eventual honesty and not immediate as the example suggests.

We could 'fix' this problem of eventual honesty for the visual system by demanding that the destination folder be an open folder (probably too restrictive, given the limited screen size) or by having the destination folder temporarily open up to reveal that the file is now located within it. This last suggestion is also a bit tricky, for we might still want to determine that the file no longer resides in the original folder, so we would have to be sure that the new folder did not obstruct the view of the old folder. In practice, this might be too difficult to guarantee in general.

Other exercises in this chapter

ex.7.1 (ans), ex.7.2 (ans), ex.7.3 (open), ex.7.4 (ans), ex.7.5 (ans), ex.7.6 (ans), ex.7.7 (tut), ex.7.8 (tut), ex.7.9 (open)

all exercises for this chapter