Bryant 2011 Democracy of Objects
Bryant 2011 Democracy of Objects
I – 2018
APPLIED
METAPHYSICS –
OBJECTS IN
OBJECT-ORIENTED
ONTOLOGY AND
OBJECT-ORIENTED
PROGRAMMING
By Gabriel Yoran
120
YORAN: APPLIED METAPHYSICS
what it is. The Western world lives in OOO, even though this is most
the Kantian horizon. It pivots around likely unintended, is a substance on-
the I. tology developed under the impres-
Speculative realists set out to sion of informatics. It “might be
change that. While not representing a termed the first computational me-
unified theory, this line of thought en- dium-based philosophy, even if it is
compasses different non-anthropo- not fully reflexive of its own historical
centric positions striving to, in Ray context in its self-understanding of
Brassier’s words, “re-interrogate or to the computation milieu in which it re-
open up a whole set of philosophical 5
sides.” As “perhaps the first Internet
problems that were taken to have or born-digital philosophy has certain
been definitively settled by Kant, cer- overdetermined characteristics that
tainly, at least, by those working reflect the medium within which [it
2
within the continental tradition.” As 6
has] emerged.” Such notions usually
overcoming the human as the epis- refer to the leading figures of specula-
temic center of the cosmos neces- tive realism using blogs and social
sarily leads to both a speculative media to distribute their thoughts
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
1 Immanuel Kant, Critique of Pure Reason, ed. 3 Kant, CPR, B xiv.
Paul Guyer and Allen W. Wood, The Cambridge 4 Graham Harman, personal communication
Edition of the Works of Immanuel Kant (Cambridge: with the author, March 12, 2017.
Cambridge University Press, 1998), A805/B833. 5 David M. Berry, Critical Theory and the
2 Ray Brassier, Iain Hamilton Grant, Graham Digital, Critical Theory and Contemporary Society
Harman, and Quentin Meillassoux, “Speculative (New York: Bloomsbury, 2014), 103.
Realism,” in Collapse, ed. Robin Mackay, vol. III 6 Ibid., 104.
(Oxford: Urbanomic, 2007), 308.
121
INTERFACE CRITIQUE JOURNAL – VOL. I – 2018
quickly and engage in lively discus- them. You wanted a banana but what
sions with the academic community you got was a gorilla holding the ba-
9
online. OOO however has a deeper re- nana and the entire jungle.” Regard-
lation to the computational sphere: less of OOP coming under fire lately,
while Harman first publicly men- the striking parallels between the
tioned the term object-oriented phi- aesthetic and technological praxis of
7
losophy in 1999, object-oriented object-oriented programming on the
programming was already invented one side and a new metaphysics on
in the late 1960s – and the parallels the other side, promise a fruitful con-
between these two domains are note- tribution to the ontographic project.
worthy. As a science investigating
Working at the Norwegian “the structure and properties (not spe-
Computing Center in Oslo, Ole-Johan cific content) of scientific infor-
Dahl und Kristen Nygaard in the mation, as well as the regularities of
1960s conceived a new way of com- scientific information activity, its
puter programming, in which what theory, history, methodology and or-
was separate before, namely data and ganization,” informatics was defined
10
functions, were molded into com- in the 1960s. Since then the task of
bined and somehow sealed logical informatics has been extended be-
units. Dahl and Nygaard named these yond the analysis of scientific infor-
units “objects” and the programming mation and deepened by performing
language they developed, Simula 67, this task using the means of compu-
is regarded the first to allow for soft- ting. Thus, informatics today has be-
ware development following the par- come the science that investigates
adigm of object-oriented program- the structure and properties of infor-
8
ming (OOP). mation. The similarities between ob-
OOP has been in use for nearly ject-oriented programming and
five decades now and while it is still a object-oriented ontology do not come
popular way of structuring software as a surprise, given that informatics is
development projects large and small traditionally occupied with meta-
today, its critics have become more physics: both computer science and
vocal. OOP’s unnecessary complexity philosophy “do not address the mate-
is just one of the issues computer lan- riality of things such as physics, they
guage designers bring up: “The prob- are not confined to the ‘science of
11
lem with object-oriented languages is quantity’ (= mathematics).” Since
they’ve got all this implicit environ- computer science strives to map real-
ment that they carry around with ity onto computational structures,
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
7 Graham Harman, Bells and Whistles: More 10 A.I. Mikhailov, A.I. Chernyl, and R.S.
Speculative Realism (Winchester: Zero Books, 2013), Gilyarevskii, “Informatika – Novoe Nazvanie Teorii
6. Naučnoj Informacii,” Naučno Tehničeskaja
8 Bjarne Stroustrup in: Federico Biancuzzi and Informacija, no. 12 (1966): 35–39.
Shane Warden, eds., Masterminds of Programming 11 Alessandro Bellini, “Is Metaphysics Relevant
(Sebastopol, CA: O’Reilly, 2009), 10. to Computer Science?,” Mathema (June 30, 2012),
9 Joe Armstrong, Coders at Work: Reflections http://www.mathema.com/philosophy/metafisica/is-
on the Craft of Programming, ed. Peter Seibel (New metaphysics-relevant-to-computer-science/.
York: Apress, 2009), 213.
122
YORAN: APPLIED METAPHYSICS
123
INTERFACE CRITIQUE JOURNAL – VOL. I – 2018
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
15 Gilbert Simondon, “The Genesis of the 16 Bertrand Meyer, Object-Oriented Software
Individual,” in Incorporations, ed. Jonathan Crary and Construction, Prentice-Hall International Series in
Sanford Kwinter (New York: Zone, 1992), 301. Computer Science (New York: Prentice-Hall, 1988),
23.
124
YORAN: APPLIED METAPHYSICS
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
17 Biancuzzi and Warden, Masterminds of 18 Graham Harman, The Quadruple Object
Programming, 350. (Winchester: Zero Books, 2011), 69.
125
INTERFACE CRITIQUE JOURNAL – VOL. I – 2018
“classes” or “object types,” and as ac- work on x and return the result in y.
tual entities, called “objects” or “in- An object method however can also
stances.” So, while a class is the modify other variables inside its ob-
Platonic description of an abstract ob- ject and thus lead to unpredictable re-
ject’s properties and behavior, in- sults. A function is supposed to return
stances are the actual realization of its result – an object method however
such classes in a computer’s modifies its object, but does not nec-
19
memory. There can be more than essarily return a copy of (or a pointer
one instance of any class, and it is to) the whole modified object. When
possible and common for multiple in- manipulating an object through one
stances of the same class to com- of its member functions, it is not
municate with each other. known from the outside which effects
Let us look at a concrete example of this manipulation will have on the ob-
the difference between procedural ject internally. This means the ob-
and object-oriented programming. In ject’s behavior following such a
procedural programming, a typical method call is not predictable from
function would be y=f(x), where f is outside of the object. While software
the function performed on x and the developers generally try to prevent
function’s result would be stored (re- unpredictability, the object-oriented
turned) in the variable y. In object-ori- philosopher will hardly be surprised:
entation however, an object x would it is a key characteristic of OOO that
be introduced, which would contain a objects can behave in unpredictable
method f. An interface would be de- ways and that their interiority is
fined that would allow for other ob- sealed off from any direct access:
jects to call f, using a specified
pattern. And so, by invoking f, the I think the biggest problem
member function being part of object typically with object-oriented
x – or x.f() for short – the object, con- programming is that people do
taining both data and functionality, their object-oriented program-
stays within itself. In our case, there ming in a very imperative
is no return value, so no y to save the manner where objects encap-
results of function f to. This is not sulate mutable state and you
necessary as the object itself holds all call methods or send mes-
the data it operates on. sages to objects that cause
Object-oriented programming them to modify themselves
has been criticized for the fact that unbeknownst to other people
the behavior of object methods (func- that are referencing these ob-
tions inside objects) is unpredictable jects. Now you end up with
when viewed from a strictly mathe- side effects that surprise you
20
matical perspective. A mathematical that you can’t analyze.
function y=f(x) is supposed only to
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
19 Vlad Tarko, “The Metaphysics of Object 20 Biancuzzi and Warden, Masterminds of
Oriented Programming,” May 28, 2006, Programming, 315.
http://news.softpedia.com/news/The-Metaphysics-
of-Object-Oriented-Programming-24906.shtml.
126
YORAN: APPLIED METAPHYSICS
127
INTERFACE CRITIQUE JOURNAL – VOL. I – 2018
work, we will use these classic terms both share, something all celestial
as defined in the C++ programming bodies incorporate. Since its first in-
language). What makes this parallel carnation in Simula 67, using the ob-
interesting is that it is an interplay ject-oriented programming paradigm
between a fixed structure and free- is synonymous with organizing ob-
floating accidents that constitutes an jects hierarchically in tree-like struc-
object. This interplay is what OOO tures. Every object has at least one
deems an object’s essence. As not to parent object (a superclass) and can
stretch the analogies between OOO have child objects (subclasses). An
and OOP too far, this interplay takes object then inherits all properties and
place on the inside of an object in OOO, methods of its superclass (or, in some
but in OOP it crosses borders between cases, superclasses) and hands them
objects. But similar to the situation in and its own properties and methods
OOO, objects can come into existence down its subclasses, which can then
without actively enacting any reality. add additional properties and meth-
However, the object structure in OOP ods. So, both classes representing
(which we would call the counterpart planets and suns should be derived
to OOO’s real-object-pole) defines from a superclass representing any
what an object can do. This is to be celestial body. This celestial body
understood as a potential and not as class would then handle properties
an exhaustive description of the ob- and methods shared by all its sub-
ject’s capabilities. In OOP, the instance classes. Only methods and data nec-
of an object (what we have come to essary for more specific celestial
see as its real-qualities-pole) cannot bodies like planets or stars would be
be reduced to the object itself (the defined in their respective sub-
real-object-pole) – an object therefore classes. In OOP, a principle of reversed
is always more than its rigid struc- subsidiarity is at work: anything that
ture. If the object has any interface to can be handled at the highest, most
the outside, which is the case with abstract level is being handled there;
most objects in OOP, there is still no only more specific tasks are being
way to know the results of all possible handled further down the object hier-
interactions with the object. archy.
OOP’s terminology, talking of
“parent classes,” “child classes,” and
HIERARCHY AND “inheritance,” shows the hierarchical
tradition in which OOP is rooted. Any
INHERITANCE object in the hierarchy “inherits” all
traits from its parent object. Such a
Let us assume all planets in our solar hierarchy has at its root an abstract
system simulation have been suffi- object (CObject in Microsoft’s MFC
ciently defined. We would still need model), which only consists of ab-
an object representing the sun. The stract methods that make no state-
sun is not a planet, but a star, yet there ment about the specifics of this object
are properties and probably methods at all. Such an object is rarely being
used directly by software developers,
128
YORAN: APPLIED METAPHYSICS
but only through one of its more con- jects, or in both places? While Simon-
crete subclasses. But not all objects don stresses the notion of objects as
22
are part of such a hierarchy, like for being through becoming, the con-
example the CTime object in the MFC cepts of both OOP and OOO define ob-
21
model. CTime is used to represent jects qua their relative stability.
an absolute time value. Operations on In object-oriented ontology,
such a value are very basic and real objects need sensual objects as a
needed in a multitude of methods, but bridge between them, leading to a
it would be hard to logically position a chain of objects. Sensual or real ob-
time object somewhere in an all-en- jects cannot touch each other di-
compassing hierarchical system. The rectly. The sensual object acts as an
question of what a representation of a interface between real objects – or
specific time should be derived from the real object as the interface be-
is hard to answer. This concept is too tween sensual objects. In object-ori-
basic to be inserted into a hierarchy. ented programming, objects cannot
So, while CTime objects can be inte- touch directly as well: they are broken
grated into custom-made hierarchies, down in interface and implementa-
they themselves are not derived from tion parts. The interface part acts as
any superclass: representations of an – incomplete – directory of meth-
time are solitary objects within the ods and variables made available to
MFC model. other objects. It never exposes every-
thing on an object’s inside to the out-
side. It can even announce methods,
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
21 Microsoft, “CTime Class,” 2015, 22 Simondon, “The Genesis of the Individual.”
https://msdn.microsoft.com/en-us/library
/78zb0ese.aspx.
129
INTERFACE CRITIQUE JOURNAL – VOL. I – 2018
object’s identifiability. The imple- its own location in space. These other
mentation part on the other hand rep- planets then would change their posi-
resents the real object in the totality tion in space accordingly. This way
of its enactability in the program. one could create a very simple simu-
As for the solar system simu- lation of gravity, but none of the ob-
lation, in object-oriented program- jects involved would have any access
ming the obvious implementation to other object properties not needed
would be a superclass representing for the calculation of gravitational ef-
all the components of a solar system fects.
needed for its simulation on a celes- So, message-passing is not
tial bodies’ level. An instance of such just a concept of inexhaustibility, it is
a solar system class would then have also a concept of indirection. Objects
to incorporate member classes for do not exhaust each other, they do not
every celestial body in the solar sys- even touch directly, but they com-
tem. But which object would be the municate by messages, which can be
one to describe the relations between seen as an implementation of the
all the data and methods of the solar concept of sensual objects.
system object? One could create
methods in the solar system class
that would contain the algorithm
needed for the simulation, like modi-
INEXHAUSTIBILITY
fying a planet’s position in space de-
pending on the position and
OF PROGRAMS
movement of other celestial bodies as
Let us go back to the solar system
time progresses. But the intended
simulation example one last time. We
way of handling such a simulation is
found that the object ontology offered
a technique called message-passing.
by object-oriented programming lan-
Objects can send and receive
guages is a lax one, since there can be
messages. The concept of message-
objects outside the hierarchy.
passing allows for messages to be
The solar system object, the
sent to an object, which then decides
object which hosts our simulation,
how to handle the message. This way
would need to be instantiated at some
an object is able to handle requests
point, since it cannot create itself.
dynamically, depending on the type
There has to be code outside the solar
of data sent to it. This illustrates how
system class. Of course, there might
both sides in an object-to-object in-
be another object, which again incor-
teraction are involved. This interac-
porates the solar system class (a su-
tion is not a simple sender-receiver
perclass to the solar system)
relationship, but a rich exchange in
representing a galaxy. But the Milky
which both objects involved do not
Way is not useful for simulating the
fully touch each other, but are selec-
gravitational effects in our solar sys-
tive with regards to which input to ac-
tem, and this would just move the
cept at all. An object representing a
problem to another level. The object-
planet could send a message to other
oriented programming paradigm is
planet objects, informing them about
130
YORAN: APPLIED METAPHYSICS
an abstraction from the hardware the languages to machine code the pro-
program will eventually be running cessor can work with) or interpreters
on, since the central processing unit (which basically fulfill the same task
(CPU) does not “know” objects. The in real-time). In any case, there is a
compiler or interpreter program must medium between the high-level lan-
24
have done its task of translation to guage and the machine.
machine code before the CPU can run While objects in object-ori-
the program – and after this transla- ented ontology are described as bro-
tion the object concept is lost to the ken down in a real and a sensual part
CPU. These translator programs re- (what we superficially likened to the
duce object-orientation to a very concepts of implementation and in-
basic sequence of memory opera- terface in programming), we need to
tions, which the chip can process. understand that the whole relation of
This would only change if object-ori- the statements made in a high-level
ented hardware were being built, programming language to the hard-
hardware that would render compil- ware the written program will run on
ers or interpreters useless – but ob- is the relation of model and reality.
ject-oriented chip designs like the The hardware of the chip forms the
Intel iAPX 432, which was introduced ultimate reality of the program, since
in 1981, eventually failed. They were the hardware defines the reality
slow and expensive and new technol- against the model put on top of it
ogies more suitable to the limitations must work. The reality of the hard-
of hardware prove more efficient – ware again is its context, the wider
and so the idea of object-orientation environment of the machinery, its ap-
in chips has only found very limited plications, and the people using it.
23
application. The limits of a program’s en-
Programming languages actability of its reality are in the hard-
came a long way in the last 60 years. ware it runs on and the time available.
They moved from a primitive set of A self-modifying program could en-
commands in order to directly access act an infinite amount of reality given
a processor’s memory to complex se- there is enough time. So, the real ob-
mantics, completely abstracted from ject is inexhaustible by the relations it
the hardware its programs will run enters into with sensual objects. Pro-
on. All high-level programming lan- grams running on a chip can never
guages need an intermediary be- exhaust it. It is impossible to list all
tween statements made in such a the programs that could be executed
language and the hardware programs on the chip. It is not even possible to
are supposed to run on – these inter- know in advance if all these programs
mediaries are either compilers (pro- will actually come to an end. Alan Tu-
grams that in a time-consuming way ring described this phenomenon,
translate high-level programming which later became known as the
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
23 David R. Ditzel and David A. Patterson, 24 A new generation of chips might end this
“Retrospective on High-Level Language Computer separation. FPGAs are chips whose hardware can be
Architecture”(ACM Press, 1980), 97-104, modified by means of software, effectively blurring
doi:10.1145/800053.801914. the line between software and hardware.
131
INTERFACE CRITIQUE JOURNAL – VOL. I – 2018
“halting problem”: it is undecidable if root of both models, OOP and OOO. But
an arbitrary computer program will object-oriented ontology rejects the
eventually finish running or will con- concept of a reducibility of objects to
25
tinue running forever. The halting other objects: even though every ob-
problem extends inexhaustibility to ject can be broken down to its parts
the proof of inexhaustibility. (representing new objects): these ob-
Object-oriented ontology jects do not exhaust the bigger object
aims at treating all objects equally – they form. There is nothing “below”
which rules out a central perpetrator. objects in OOO. OOP however is a
In object-oriented programming, it model, which is deliberately put on
seems that there is no central perpe- top of the more primitive and non-in-
trator as well and objects act inde- tuitive computational concept of
pendently from a central instance. In memory.
reality, object-orientation today is a This shows how object-ori-
paradigm put on top of hardware, ented programming works only at a
which is incapable of working with- certain level of abstraction, thus con-
out a central perpetrator. So, while the stituting the major difference be-
language in which the program is tween object-oriented programming
modeled, is object-oriented, it is im- and object-oriented ontology: the ear-
portant to understand that these ob- lier being a model applied pragmati-
jects are constructions in a language, cally in one domain, the latter aiming
which again tries to mimic things and for a complete metaphysics.
relations in reality.
Objects act on behalf of them-
selves as long as one stays at the ob-
ject’s level of abstraction. On the
chip’s level these objects are nonex-
istent – the CPU only acts upon
memory, where certain information
is stored. The CPU and the operating
system will make decisions without
the objects “knowing,” for example for
dispatching: since programs today
mostly run on computers with more
than one central processing unit, it is
necessary to distribute tasks (or ob-
ject methods) to different CPUs.
The intuition of being sur-
rounded by objects with a certain in-
dependence from each other is at the
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
25 Alan M. Turing, “On Computable Numbers, Computable Numbers, with an Application to the
with an Application to the Entscheidungsproblem,” Entscheidungsproblem. A Correction,” Proceedings of
Proceedings of the London Mathematical Society s2- the London Mathematical Society s2-43, no. 6
42, no. 1 (January 1, 1937): 230-65, (January 1, 1938): 544-46, doi:10.1112/plms/s2-
doi:10.1112/plms/s2-42.1.230; Alan M. Turing, “On 43.6.544.
132
YORAN: APPLIED METAPHYSICS
133