Edge: George Dyson Presentation [page 6]
Home | Third Culture | Digerati | Reality Club

By the 1960s complex numerical symbioorganisms known as operating systems had evolved, bringing with them entire ecologies of symbionts, parasites, and coevolving hosts. The most successful operating systems, such as OS/360, MS-DOS, and UNIX, succeeded in transforming and expanding the digital universe to better propagate themselves. It took five thousand programmer-years of effort to write and debug the OS/360 code; the parasites and symbionts sprouted up overnight. There was strength in numbers. "The success of some programming systems depended on the number of machines they would run on," commented John Backus, principal author of Fortran, a language that has had a long and fruitful symbiosis with many hosts.[37] The success of the machines depended in turn on their ability to support the successful languages; those that clung to dead languages or moribund operating systems became extinct.

The computational ecology grew by leaps and bounds. In 1954, IBM's model 650 computer shipped with 6,000 lines of code; the first release of OS/360 in 1966 totaled just under 400,000 instructions, expanding to 2 million instructions by the early 1970s. The total of all system software provided by the major computer manufacturers reached 1 million lines of code by 1959, and 100 million by 1972. The amount of random access memory in use worldwide, costing an average $4.00 per byte, reached a total of 1,000 megabytes in 1966, and a total of 10,000 megabytes, at an average cost of $1.20 per byte, in 1971. Annual sales of punched cards by U. S. manufacturers exceeded 200 billion cards (or 500,000 tons) in 1967, after which the number of cards began to decline in favor of magnetic tapes and disks.[38]

In the 1970s, with the introduction of the microprocessor, a second stage of this revolution was launched. The replication of processors thousands and millions at a time led to the growth of new forms of numerical symbioorganisms, just as the advent of metazoans sparked a series of developments culminating in an explosion of new life-forms six hundred million years ago. New species of numerical symbioorganisms began to appear, reproduce, and become extinct at a rate governed by the exchange of floppy disks rather than the frequency of new generations of mainframes at IBM. Code was written, copied, combined, borrowed, and stolen among software producers as freely as in a primordial soup of living but only vaguely differentiated cells. Anyone who put together some code that could be executed as a useful process--like Dan Fylstra's Visicalc in 1979--was in for a wild ride. Businesses sprouted like mushrooms, supported by the digital mycelium underneath. Corporations came and went, but successful code lived on.

Twenty years later, fueled by an epidemic of packet-switching protocols, a particularly virulent strain of symbiotic code, the neo-Cambrian explosion entered a third and even more volatile phase. Now able to propagate at the speed of light instead of at the speed of circulating floppy disks, numerical symbioorganisms began competing not only for memory and CPU cycles within their local hosts but within a multitude of hosts at a single time. Successful code is now executed in millions of places at once, just as a successful genotype is expressed within each of an organism's many cells. The possibilities of complex, multicellular digital organisms are only beginning to be explored.

The introduction of distributed object-oriented programming languages (metalanguages, such as Java, that allow symbiogenesis to transcend the proprietary divisions between lower-level languages in use by different hosts) is enabling numerical symbioorganisms to roam, reproduce, and execute freely across the computational universe as a whole. Through the same hierarchical evolution by which order codes were organized into subroutines and subroutines into programs, objects, being midlevel conglomerations of code, will form higher-level structures distributed across the net. Object-oriented programming languages were first introduced some years ago with a big splash that turned out to be a flop. But what failed to thrive on the desktop may behave entirely differently on the Internet. Nils Barricelli, in 1985, drew a parallel between higher-level object-oriented languages and the metalanguages used in cellular communication, but he put the analogy the other way: "If humans, instead of transmitting to each other reprints and complicated explanations, developed the habit of transmitting computer programs allowing a computer-directed factory to construct the machine needed for a particular purpose, that would be the closest analogue to the communication methods among cells of various species."[39]

But aren't these analogies deeply flawed? Software is designed, engineered, and reproduced by human beings; programs are not independently self-reproducing organisms selected by an impartial environment from the random variation that drives other evolutionary processes that we characterize as alive. The analogy, however, is valid, because the analog of software in the living world is not a self-reproducing organism, but a self-replicating molecule of DNA. Self-replication and self-reproduction have often been confused. Biological organisms, even single-celled organisms, do not replicate themselves; they host the replication of genetic sequences that assist in reproducing an approximate likeness of themselves. For all but the lowest organisms, there is a lengthy, recursive sequence of nested programs to unfold. An elaborate self-extracting process restores entire directories of compressed genetic programs and reconstructs increasingly complicated levels of hardware on which the operating system runs. That most software is parasitic (or symbiotic) in its dependence on a host metabolism, rather than freely self-replicating, strengthens rather than weakens the analogies with life.

In 1953, Nils Barricelli observed a digital universe in the process of being born. There was only a fraction of a megabyte of random access memory on planet Earth, and only part of it was working at any given time. "The limited capacity of even the largest calculating machines makes it impossible to operate with more than a few thousand genes at a time instead of the thousands of billions of genes and organisms with which nature operates," he wrote in 1957. "This makes it impossible to develop anything more than extremely primitive symbioorganisms even if the most suitable laws of reproduction are chosen."[40] Not so today. Barricelli's universe has expanded explosively, providing numerical organisms with inexhaustible frontiers on which to grow.

"Given enough time in a sufficiently varied universe," predicted Nils Barricelli, "the numeric symbioorganisms might be able to improve considerably their technique in the use of evolutionary processes."[41] In later years, Barricelli continued to apply the perspective gained through his IAS experiments to the puzzle of explaining the origins and early evolution of life. "The first language and the first technology on Earth was not created by humans. It was created by primordial RNA molecules almost 4 billion years ago," he wrote in 1986. "Is there any possibility that an evolution process with the potentiality of leading to comparable results could be started in the memory of a computing machine and carried on to a stage giving fundamental information on the nature of life?" He endeavored "to obtain as much information as possible about the way in which the genetic language of the living organisms populating our planet (terrestrial life forms) originated and evolved."[42]

Barricelli viewed the genetic code "as a language used by primordial 'collector societies' of [transfer] RNA molecules... specialized in the collection of amino acids and possibly other molecular objects, as a means to organize the delivery of collected material." He drew analogies between this language and the languages used by other collector societies, such as social insects, but warned that "trying to use the ant and bee languages as an explanation of the origin of the genetic code would be a gross misunderstanding."[43] Languages are, however, the key to evolving increasingly complex, self-reproducing structures through the cooperation of simpler component parts.

According to Simen Gaure, Nils Barricelli "balanced on a thin line between being truly original and being a crank." Most cranks turn out to be cranks; a few cranks turn out to be right. "The scientific community needs a couple of Barricellis each century," added Gaure. As Barricelli's century draws to a close, the distinctions between A-life (represented by strings of electronic bits) and B-life (represented by strings of nucleotides) are being traversed by the first traces of a language that comprehends them both. Does this represent the gene's learning to manipulate the power of the bit, or does it represent the bit's learning to manipulate the power of the gene? As algae and fungi became lichen, the answer will be both. And it is the business of symbiogenesis to bring such coalitions to life.

Previous | Page 1 2 3 4 5 6 | Beginning