The Paradigm of Object Spaces: Better Software is Coming, by Bernhard Angerer and Alan N. Shapiro

The hypothetical time traveler whom Michael Stal wrote about in his 2006 article “From the Future” would be disappointed to learn that “prehistoric computer science,” as the temporal traveler termed it, has not changed much as of 2011, five years down the road. Market analysts and IT experts still report that only about 20 percent of all software development projects reach a successful conclusion. The remaining 80 percent of projects overrun their budgets, go on longer than expected, do not implement all desired functional requirements, or are prematurely terminated out of frustration. We are still faced with the burning question: how can software more effectively be made?

One possible answer has been suggested by software developers in the “Object Spaces” (also called simply “Spaces”) community. According to Wikipedia, Object Spaces is a paradigm for distributed computing and “global” (system-wide) object coordination. Our view is that Object Spaces is the start of the right road towards making a qualitative revolution in computer science: a major upgrade in how software is made, and in the power of what it can do. Improving the overall situation of software development will be made possible through adapting an Object Spaces approach which can be described as holistic, since it takes on infrastructural challenges with an application-centered unified programming paradigm.

Yale University computer science professor David Gelernter, with his tuple space coordination model, is regarded as being the originator of Object Spaces. In mathematics and computer science, a tuple is an ordered list of elements. In a “Tuple Space,” a repository of tuples is accessed concurrently by many processes. A Tuple Space is an example of an Object Space. Together with Yale University colleague Nicholas Carriero, Gelernter laid the foundations of the Tuple and Object Space paradigms in the late 1980s with the development of the Linda programming language. The importance of the approach was already recognized back then, but it is only recently that large-scale implementations of Object Spaces in production software systems have begun.

In our view, the potentially wide-ranging impact of Object Spaces has been deferred in time due to a somewhat narrow (and hopefully temporary) channeling of the paradigm into the two technologies of “Grid Computing” and JavaSpaces. Josef Ottinger, a proponent of the movement of Grid Computing, defines Object Spaces as the setting up of a sort of memory map for Client/Server applications: a network or Grid in which data resides that can be read and written. The Sun Microsystems technology known as JavaSpaces has also tried to implement a Spaces concept. JavaSpaces uses an infrastructure called “Distributed Virtual Shared Memory.” The dimension of distribution is added to shared memory. As the Wikipedia article on the subject states, JavaSpaces provides a “distributed object exchange and coordination mechanism (which may or may not be persistent) for Java objects.” JavaSpaces is a part of the Java Jini technologies for distributed systems. Jini has not been a commercial success. Chief Jini architect Bill Joy has attributed this failure in part to the fact that the dream of distributed systems will require a “quantum leap in thinking.”

In his groundbreaking book Mirror Worlds (1992), Gelernter explains that mirror worlds (a higher-level term related to object spaces) are software ensembles, “glued-together out of many separate programs all chattering at once.” An ensemble is “a group of objects that interact; a group, accordingly, that is more than the sum of its parts.”5 Asynchronous ensembles are the crucial technology for the realisation of Gelernter’s dream of mirror worlds. On the application level, mirror worlds are information-intensive software models monitoring and reflecting the reality of some large institution like a hospital, city, or corporation. Gelernter’s dream has arguable now already been partially realized in social software applicatins like Facebook.

On the technical computer science level, the emphasis in object spaces is on the communication and coordination among various running programs. This is fundamentally different from what the conventional emphasis in computer programming has almost always been: the individual processes themselves. Beyond the functional-procedural paradigm of the program as executing a sequence of instructions (languages ike Pascal and C), beyond the object-oriented paradigm of the unity of data and code in software objects (languages like Java and C++), a software ensemble – as envisioned by Gelernter – coordinates the simultaneous activities of many independently operating software agents, and furnishes an environment where these agents can receptively obtain real-time systemic information in a way that advances their autonomous intelligence. “Coordinated programs are the future of Computer Science.”6 Objects acquire even more power as object-orientation is taken a significant step further.

Object spaces add major new design and deployment patterns to the infrastructure of a running system, and to the business application. Similar to time travelers of the future who will need a decoupling of space, time and Newtonian geo-physical referentiality to embark on their history rewriting adventures, software agents in object spaces will have such a decoupling – in principles of software design and engineering put into practice in the very near future – and the freedom that goes with it. An application-side ‘Blackboard’ communication is the basis of this. Software agents get their own space in which to write and log their data. Other programs which have registered an interest in this information receive notifications and can read from the commonly shared object space as they like.

Any interaction in an object space software system has a triadic structure which has a strong affinity with the core concept of the original semiotics of Charles Sanders Peirce. Peirce was a nineteenth-century ‘American pragmatist’ who is indisputably the most important figure in the history of semiotics. Peirce’s idea of the triadic sign relation occasioned the definition of semiosis as an “action or influence, which is, or involves, a cooperation of three subjects, such as a sign, its Object, and its interpretant, this tri-relative influence not being in any way resolvable into actions between pairs.”7 The representations of an object operate as a sign, and meaning emerges from the triadic relation among sign, object, and interpretant. Every human thought is a sign, the mediation between an object and an idea. Reasoning or cognition is the interpretation of signs.

The triadic relationship – as opposed to any diadic relationship between a sign and an object, or an object and an interpretant – is the breakthrough to a new paradigm in computer science. A nineteenth-century seminal idea is already two centuries ahead of the seventeenth-century ideas of Rene Descartes and Francis Bacon on which existing computer science is based. Meaning emanates and flows from the ‘thirdness’ of a genuine triadic relationship.There is also an echo here of something from the psychoanalysis of Jacques Lacan: the third participant provides a mirror illuminating the reality of the relationship between the first and the second peers. Concepts from the humanities lead to a qualitative upgrade in computer science.

The object-oriented way of programming software is already halfway the breakthrough that we need in AI – software objects that are free from the control of the programmer. This is what you see in the French philosophy that I’m interested in. Thinkers like Derrida, Foucault, Deleuze, and Baudrillard, basically they are making a critique of Rene Descartes, who developed the Cartesian method that is subject-centered. And what the French postmodern philosophy is all about is that there’s something wrong with the subject being in control of the world. That’s why nature is being destroy, that’s why men think they’re superior to women, that’s why humans think they’re superior to animals, that’s why Europe and America think they’re superior to the Third and Fourth Worlds and that’s why we took Africans as slaves and destroyed Native American cultures – because of this arrogance of the subject.

At the beginning of his book On the Mode of Existence of Technical Objects, Gilbert Simondon writes: “The purpose of this study is to attempt to stimulate awareness of the significance of technical objects. Culture has become a system of defense designed to safeguard man from technics. This is the result of the assumption that technical objects contain no human reality. We should like to show that culture fails to take into account that in technical reality there is a human reality, and that, if it is fully to play its role, culture must come to terms with technical entities as part of its body of knowledge and values. Recognition of the modes of existence of technical objects must be the result of philosophic consideration; what philosophy has to achieve in this respect is analogous to what the abolition of slavery achieved in affirming the worth of the individual human being.”8 In a way, Simondon made an anthropocentric and anthropomorphic error when he tried to defend the honour and dignity of technical objects by giving them a sort of human or humanistic status. This would take away their ‘otherness’ from humans, an error which Baudrillard certainly would not have made. It would be more correct to say that technical objects are alive, or should be given a status beyond the binary opposition between the living and the nonliving, rather than assuming that the only worthwhile life would be a human life. It should be about humans and technical objects co-existing in difference or, better, otherness.

NOTES

1 – Wikipedia article on Tuple Space and Object Spaces.

2 – Joseph Ottinger, “Using JavaSpaces”.

3 – Wikipedia article on Tuple Space and Object Spaces.

4 – Ibid.

5 – David Gelernter, Mirror Worlds: The Day Software Put the Universe in a Shoebox… How It Will Happen and What It Will Mean (New York: Oxford University Press, 1992).

6 – Ibid.

7 – Charles Sanders Peirce, The Essential Philosophical Writings, Volume 2 (1893 – 1913) (edited by the Peirce Edition Project) (Bloomington, IN: Indiana University Press, 1998) p.411.

8 – Gilbert Simondon, On the Mode of Existence of Technical Objects (translated from the French by Ninian Mellamphy, with a Preface by John Hart) (University of Western Ontario, 1980); p.1.

 


Posted

in

by

Tags: