Market-style software systems are a fairly obvious idea and
have received some attention. However, in considering any fairly-obvious idea
with (allegedly) great but unrealized potential, it is wise to ask why that
potential has in fact not been realized. When an idea of this sort neither
lends itself to formal proof nor to small, convincing demonstrations, the
difficulty of making a case for it grows. Support from abstract arguments and
analogies can be helpful, as can an examination of the practical issues
involved. But in addition, it helps to see whether the idea has been tested and
found wanting. Considering this major category of possible negative evidence is
an aspect of due-process reasoning.
Why have agoric open systems not been implemented
already? In part, because the software community has lacked an immediate,
compelling need. Advances have been made, through better programming
environments and methodologies (including the encapsulation and communication
of information and access), and through tools for making larger structures
visible to programmers [64]-all without building
markets. These environments and method- ologies have extended the programmer's
conceptual span of control, enabling one mind or a few closely-coordinated,
mutually-trusting minds to build ever larger and more complex programs. These
advances have decreased the urgency of enabling extensive cooperation without
mutual trust or extensive communications.
Another problem has been the scale-sensitivity of the
market approach. In small systems, the overhead of accounting and negotiations
is unjustified; further, incremental increases in scale have thus far been
possible without markets. Robust service-trading objects must have a certain
minimum complexity, or have access to trusted business-agents of a certain
minimum complexity. The virtues of markets are greatest in large, diverse
systems.
There has, perhaps, also been a cultural factor at work.
Large, research-oriented computer networks have focused on academic and
government work-that is, toward non-profit use. Further, the academic community
already has an informal incentive structure that rewards the creators of useful
software in an incremental way, in rough proportion to its usefulness. These
reputation-based reward mechanisms facilitate the development of software
systems that build on others' work; the differing incentives in the commercial
community may be responsible for its greater tendency to build redundant
systems from scratch.
These considerations seem sufficient to explain the lack
of agoric systems today, while giving reason to expect that they will become
desirable as computer systems and networks grow. In the large, open, evolving
software systems of the future, the overhead of accounting will be less
important than robustness and flexibility. Further, the development of
automated programming systems will introduce "programmers" having (initially) a
sharply limited ability to plan and comprehend. This will re-emphasize the
problem of the "programmer's" span of conceptual control, and increase the need
for mechanisms that strengthen localization and system robustness.
|