BY GUL AGHA
Freed from the temporal constraints of hardware, software could be the
ultimate cyberorganism—a mind taking a body as needed to fulfill a particular
function or mission.
The idea of software as a program representing a sequence of instructions on a von Neumann
architecture is no longer tenable. In an article in Communications almost two decades ago [ 1],
I advocated building software systems by composing concurrent objects, or actors. Actors reflect
several key characteristics. For example, they are distributed, autonomous objects that interact
by sending each other messages. They have unique names that are not tied to their current location, thus facilitating mobility. And new actors may be dynamically created, thus allowing new
services to be added to a system. With the growth of P2P computing, Web services, networks
of embedded computers, and multicore architectures, programming using the actor model is
inevitable; witness the increasing use of programming languages (such as Erlang, E, SALSA,
Scala, and Ptolemy) and the various implementations of software agents.
The notion of a sequential algorithm has a venerable tradition. The ninth-century Persian
rationalist philosopher and mathematician
Al-Khwarzimi is credited with introducing
the concept of a sequence of instructions to compute
a function (later termed an algorithm in his honor).
But it wasn’t until the mid-20th century that the discipline of computing took root, inspired by Alan Turing’s representation of programs as data and by
Alonzo Church’s theory of computation as something
that can be carried out on a Turing machine. CACM
has covered the development of computer science
almost since this inception.
Computing has been morphing ever since. Initially
developed as a flexible calculator for scientific problems, computers have successively become an arbiter
and recorder of business transactions, a reasoning
engine carrying out symbolic computations, a laboratory for running simulations, and a vehicle for social
networking and entertainment. At the same time,