On Tue, Mar 2, 2010 at 1:18 PM, Andrey Fedorov <[email protected]> wrote:
> John Zabroski wrote:
>>
>> the three stumbling blocks are size, complexity and trustworthiness
>
> How are these different?
> A small program is a simple program by definition, assuming it's expressed
> in an intuitively comprehensible way.

I disagree that a small program is by definition a simple program.
Let's consider a program os a network with objects as nodes and paths
of communication as edges.  If you have a program with N objects and
N-1 edges, it's going to be a simple and pretty linear program.  If
however, in the other direction, each object itself has N-1 edges for
N*(N-1) paths of communication you'll quickly end up with a complex
system without growing in size.  Complexity is a question of topology
and graph theory, size is a question of quantity.

Often in science, relations amongst objects are not considered as
significant.  This was particularly the case in biology for a long
time where a large number of practitioners thought they could
understand biological systems in their entirety by isolating
subsystems and not considering that in reality these systems exist in
an environment.  A powerful case for thinking about relationships was
made by Bertalanaffy in his book General Systems Science.  What
particularly struck me about his work is the difference between
informational feedback/openness (e.g. Cybernetics) and structural
feedback/openness particularly of the thermodynamic kind.  In
Cybernetics, it's not possible for a system to evolve into a more
complex structure whereas with thermodynamic feedback and input of
negative entropy it is.  This may seem like it has nothing to do with
computer science or software, but I think it does.  These concepts can
show us how to understand complex systems, especially those that are
capable of changing in structure.

Incidentally, there's a link between the ideas of Bertalanaffy (and
also the related ideas of Prigogine) to Lambda Calculus via the work
of Walter Fontana and his work on Abstract Chemistry
(http://tuvalu.santafe.edu/~walter/Papers/barrier.pdf ,
http://tuvalu.santafe.edu/~walter/Pages/publications.html )


> And a simple program is a program I
> can trust to do what I think it does. Conversely, the only reason I wouldn't
> trust a program (assuming I trust the compilers/interpreters) is because it
> would be too complicated to understand. That's what I meant when I quoted


As for trustworthiness ... if complexity can be understood in terms of
topology and graph theory, then trustworthiness can be understood in
terms of applying graph theoretical techniques to verify or guarantee
behavior of the structures represented by the network.

All in all, I think there's a pretty clear distinction to be made.

wes

_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to