This is a draft version as submitted to the Communications of the ACM for editorial review. The revised version was published in Communications of the ACM, 39:1 (1996), pp. 30-40. (c) 1996 by the Association for Computing Machinery.