At first glance there seems to be no credible connection between computer programs and the functioning of the human body, but, upon closer examination the parallels are ubiquitous. Besides the many examples shown in "How God Makes God" and "Lingo Sorcery", take a look at this following example of object oriented design as explained in the March 1996 edition of Scientific American (Budding Vesicles in Living Cells by James E. Rothman and Lelio Orci).
The
human cell is divided into a number of departments enclosed by
membranes (organelles). Each of these departments have a specific
role to play. For instance, one department called the endoplasmic
reticulum produces many of the cell's necessary proteins. These
proteins are then sent to another department called the Golgi
apparatus where they are modified and shipped to another department,
or, sent outside to go on to a department in another cell somewhere
else in the body.
The transfer of the molecular messages (because this is what these
proteins are) is arranged by a process known as budding vesicles (see
fig A). A molecule inside a cell department will attach itself to the
membrane wall and cause that section of the wall to bulge. With the
help of other molecules, the bulging increases until it forms a
little bubble on the outside of the membrane. Within this bubble are
attracted certain specific molecules (messages) which are to be
despatched.
The bubble on the outside then nips itself off from the membrane,
enclosing the designated molecules. This vesicle then transports its
cargo of molecules to a target membrane to which it attaches itself
through 'address' molecules on the surface. When the vesicle sticks
to the target surface, new molecules come into play which open up the
membrane between the interior of the target and the bubble to allow
the molecule contents of the bubble to escape into the new department
where their molecular messages can be relayed to that department's
machinery.
This is only one of the many incredible ways in which nature has
been using object-oriented programming techniques for millions of
years.
The shape of a molecule can be modeled in a computer memory as a
sequence of 1's and 0's. If the shape changes, the 'shape' of the
sequence of 1's and 0's also changes. In other words, a molecular
shape can be accurately represented as a string of bits.
Messages in Lingo, or any other computer language, are also
represented as a sequence of 1's and 0's in a computer. This provides
a common link to think of messages and molecules as synonymous
vectors of communication in object oriented frameworks.
Using this way of looking at things, it becomes possible to think
about the functions of a human cell (as it forms, changes and
combines a variety of molecular shapes) in terms of programming
constructs. From this view point the human cell acts in an identical
way to a digital computer: acting upon and processing strings of
information.
This paradigm can then lead to quite a different way of looking at
biological structures and, conversely, looking at object-oriented
systems.
If you look at the human body as an object oriented system, it is
readily apparent that all activity originates in cells. Inside the
human cell there is a hive of chemical activity as molecular messages
are created, modified, processed and passed around from section to
section.
Cells also send to and receive messages from each other, prompting
further chemical interactions and activity within the cells. All this
activity is initiated and coordinated by information contained on the
genome.
If you abstract out the system of communicating cells within a
biological system, you can then compare it with the abstraction of
the system of communicating computers on the Internet. Using a
paradigm shift to switch between the two systems provides an unique
way to compare them.
The most striking observation is the relatively small amount of
message content in biological systems which trigger large amounts of
activity in target cells. It is as if the genome contains a wealth of
programming elements and the messages trigger large scale
reorganization of the elements to create programming structures on
the fly (similar to the way in which Lingo objects can create and
restructure each other from elements in the cast of a Director movie
- as explained in chapter 14 of Lingo Sorcery).
In comparing the Internet with biological systems it immediately
becomes obvious how advantageous it could be to focus on the client
side rather than the server side. It also highlights the role that
CD-ROMs can play in Intranet systems - remembering that a CD-ROM is
similar in information size to a genome. Communicating cells in a
biological system using the genome as a store of programming
constructs (and software objects) map across perfectly to an Intranet
system where each of the computers in the system can refer to the
content of a common CD-ROM.
When you click onto this paradigm it is truly an exciting vision.
Now you shouldn't need much convincing that the design of the human
biological system is a masterpiece of system programming. As computer
programmers, we might be wise to look to this system for a few tips;
some of the techniques that nature uses are truly breathtaking.
[Index]
[Next - Object oriented thinking]
[Back - Paradigms and Morphing]
Peter Small August 1996
Email:
peter@petersmall.com
Version 1.00
©Copyright 1996 Peter Small