Efficient coding considered har

mcdonald at uxe.cso.uiuc.edu mcdonald at uxe.cso.uiuc.edu
Sat Nov 5 00:46:00 AEST 1988


I've observed a lot of users using a lot of programs over a long
time. I note that the order of the following list has changed over
the ages. But today I really believe it to be true.
         User's Program Priority List (1 is highest priority)

1.   Cost is <= amount of money purchaser has at hand.

2.   Utility. The program must do what the user need it for. It must have
     ALL necessary features. For example, if the user's name is 
     Co^te', a word processor is useless if it can't get the accents
     over the letters. If a word processor can't produce integral
     signs it is useless to me. If a spreadsheet can't produce pound
     signs (which this medium can't!), it is useless in England.

3.   Look and feel. It should look nice and be easy to use. For a
     large and growing segment of the world, this means it should
     work like a Macintosh. Lacking that, it should be full-screen,
     and use all the functionality of the computer it runs on.
     For example, word processors should properly display imported
     graphics. Fonts should appear on the screen as they do on paper.
     Menus and commands should be used INTELLIGENTLY, at the whim
     of the user. There should be more flexibility here than is usually
     the case - a Mac failing, slowly being remedied.

4.   Speed. Speed. Speed. More speed.

5.   Small memory usage.

6.   Bug-free. Note that this is number six. Users will tolerate small
     bugs if a program is otherwise suitable. But they will mercilessly
     flame the seller. If that seller give an essentially free update
     that fixes the bugs, users will not actually blacklist the seller.

7.   Portability of program. Users would like to be able to use the
     same program on different computers.

8.   Cost. If item #1 is met OK, actual cost doesn't seem to be
     very important.
_________________________________________________________________________
     User's don't care AT ALL about items below this line. This implies
     that they matter only as they impact things above the line.

A.   Portable source code. Users don't read source code. But they do
     do know what "vaporware" is.  

B.   Easily maintainable source code. Users don't read source code.

C.   Language program is written in, whether it is "structured" or
     not, whether it is "object oriented" or not. Users don't read
     source code.

Of course, if the user and programmer are the same, or closely related,
the order may change.

Comments and flames are welcome.

Doug McDonald (mcdonald at uiucuxe)



More information about the Comp.lang.c mailing list