Successfully reported this slideshow.
Table of Contents
INTRODUCTION ............................................................................................ 2
TWO CONTRASTING THEORIES ...................................................................... 2
Plato’s Theory of Forms and his conception of Knowledge .............................. 2
The modern‐day field of Object‐Oriented Programming ................................. 3
MAIN ARGUMENT ........................................................................................ 4
Classes are analogous to Platonic Forms .......................................................... 4
Objection – Classes are not unchanging ............................................................................ 5
Objection – Classes are not eternal ................................................................................... 5
Objects are analogous to Perceptibles .............................................................. 5
Objection – Objects are not imperfect instantiations of their Classes .............................. 6
Opinions about Objects and the Knowledge of Classes are analogous to
Opinions about Perceptibles and the Knowledge of Forms ............................. 7
Objection – Objects do not comprehend .......................................................................... 8
CONCLUSION ................................................................................................ 8
BIBLIOGRAPHY ........................................................................................... 10
ESSAY QUESTION (WORDS 2674)
The modern‐day field of Object‐Oriented Programming (OOP) is analogous to Plato’s
theory of Forms and his conception of Knowledge.
This essay argues that the modern‐day field of Object‐Oriented Programming (OOP) is
analogous to Plato’s theory of Forms and his conception of Knowledge. This is proved in
that Classes are analogous to Platonic Forms, and Objects are analogous to Perceptibles.
Correspondingly, Opinions about Objects and the Knowledge of Classes are analogous to
Opinions about Perceptibles and the Knowledge of Forms. Whilst establishing these claims I
address the following likely objections: 1) That Classes are not unchanging; 2) That Classes
are not eternal; 3) That Objects are not imperfect instantiations of their Classes; 4) That
Objects do not comprehend.
Firstly, some definitions…
Physical World – refers to that realm in which we exist and of which our physical senses
Runtime Environment – refers to the realm within the memory of a computer where
programs are executed
Opinions – temporally accurate conclusions derived through sensible observation
Knowledge – eternally accurate conclusions grasped through reason
Forms – (capital F) refers to the metaphysical entities defined by Plato’s theory of Forms
Classes – (capital C) refers to source‐code files of Object‐Oriented Programming
Perceptibles – (capital P) refers to the instantiation of Plato’s Forms as sensible objects in
the Physical World
Objects – (capital O) refers to the instantiation of Object‐Oriented Classes as programs in the
TWO CONTRASTING THEORIES
Plato’s Theory of Forms and his conception of Knowledge
Plato’s Forms are, very generally, defined as “essences shared by those things that (in our
terms) belong to a single kind or possess a single property.”1
For example, Plato suggests
that there is something eternal and enduring about goodness itself which is shared by all
things which are said to be good. It is this common ‘essence’ of goodness that Plato defines
as the Form of the good. Likewise, all things which contain goodness are said to instantiate
Mason, Andrew. Plato. (Durham, UK: Acumen Publishing Limited, 2010), p. 27
the Form of the good. The importance of identifying Forms becomes clear when applied to
Plato’s conception of Knowledge.
In the Republic (Rep. 509d‐510a), Plato draws a distinction between ‘opinions’ and
‘knowledge’. Plato proposes that there are at least two obstacles which prevent human
beings from possessing knowledge of the physical world. These are: 1) Human senses are
limited and fallible (Rep. 523e). 2) The physical world is in a constant state of change (Phd.
78b). Forms are presented as the essential objects of knowledge as they are “eternal and
unchanging, that they are grasped by pure reason rather than by perception, and that they
do not depend for their existence on their perceptible instances.”2
Therefore, it is only
possible to obtain ‘opinions’ regarding the physical world through the senses, whilst it is
possible to obtain ‘knowledge’ regarding the Forms through the application of reason;
where ‘knowledge’ is higher than ‘opinions’.
The modern‐day field of Object‐Oriented Programming
The concepts of Object‐Oriented Programming (OOP) originated out of Michigan Institute of
Technology (MIT) in the late 1950’s and early 1960’s but the first truly Object‐Oriented
language was not developed until the late 1960’s with the introduction of SIMULA 67. As its
name suggests, the simulation of real‐world situations was the focus of this new language,
whereby entities, or objects, were represented programmatically as well as their inter‐
object relationships and potential interactions.3
Prior to the introduction of OOP, computers used procedural programming where the
execution of source‐code commenced with the first line of code and then moved
sequentially through to the end of the program via a logical, condition‐based, path. What
distinguished OOP from its predecessors was the conception of Classes (the source‐code) as
templates from which Objects (the focus of execution) were brought into existence, or
instantiated. In procedural programming, then, the source‐code itself was understood as
Mason p. 27
Huang, Jian. “A Brief History of Object‐Oriented Programming,” University of Tennessee Department of
Electrical Engineering and Computer Science, http://web.eecs.utk.edu/~huangj/CS302S04/notes/oo‐intro.html
May 2011); Wikipedia, “Object‐Oriented Programming,” http://en.wikipedia.org/wiki/Object‐
oriented_programming (accessed, 11th May 2011)
the focus of execution. In contrast, OOP did not mandate a single thread of execution but
instead allowed Objects to respond to external stimuli and interact in such a way to enable
simultaneous, independent execution within multiple Objects.
Classes are analogous to Platonic Forms
In the Timaues (Ti. 29a), Plato writes that it was God who first brought about the existence
of the Forms in the eternal metaphysical realm. These Forms were brought about to serve
as templates from which all Perceptibles in the physical realm were produced. In Object‐
Oriented Programming, it is the Programmer who defines and creates the Classes to serve
as the templates from which Objects within the runtime environment are produced.
Forms define the particular ‘essences’ of things including all attributes, properties, and
behaviour. Forms may also be related to one another in the sense of Genus and Species (Ti.
30c, 39e – 40b). For example, the Form of Living Creature (a Genus) is related to, and
further defined, by the Form of Sea Creature. Thus, a vast hierarchy of interrelated Forms
exist to model the physical world.
Likewise, the Object‐Oriented Programmer defines all attributes, properties, and internal
processing methods of each Class. Class design also includes the ability to define Abstract
Classes and Class Inheritance which allows for modelling of the same kind of hierarchical
abstractions as exist among Forms. For example, it is possible to define the Class of Sea
Creature which inherits from the Class of Living Creature and, where necessary, overrides
and further defines the inherited characteristics of its parent Class.
Both Forms and Classes, then, are designed by their creators, the former by God, the latter
by a Programmer, to serve as templates from which Perceptibles and Objects respectively
are produced. In each case the Forms and Classes completely define the ‘essence’ of the
thing, including relationships to one another. Therefore, it can be concluded that Classes
are analogous to Platonic Forms.
Objection – Classes are not unchanging
A programmer may change his mind about the Classes and re‐write them. How can it be said
that Classes are unchanging in the way that Platonic Forms are unchanging?
In our example, as in the case of all examples which are based upon the changeable physical
realm, it is difficult for us to conceive of a Programmer possessing perfection in the same
manner as God possesses perfection. However, if we were to conceive of such a perfect
Programmer then the Classes which that Programmer would create would also be perfect,
and so the Classes would not need to be altered once they were first created. In this way,
the Classes would be unchanging in the same way as Forms.
Objection – Classes are not eternal
You suggest that Classes exist within the eternal realm, but is it not true that Classes and
Objects exist together inside the same memory of a computer? How can such a distinction
You have failed to perceive the separation that exists between the Classes (which exist on
the permanent storage of the computer’s hard drive) and Objects (which exist only
temporarily in the computer’s operational memory). In this light, relative to the perspective
of the Objects, the Classes are eternal as they exist outside of the runtime environment.
Therefore, it is true to say that the Classes are eternal in the same way as Forms.
Objects are analogous to Perceptibles
The physical world into which Perceptibles are instantiated is essentially a vast expanse of
time and space. The Timaeus (Ti. 49a – 52c) describes how Perceptibles begin their
existence with a receptacle which occupies a region within time and space which is then
defined by the instantiation of properties from the various Forms which comprise its
existence. Perceptibles only maintain a finite, or temporal, existence within the physical
world and are not eternal.
Similarly, the runtime environment into which Objects are instantiated is essentially a vast
expanse of time‐dependent operating memory (space). Objects commence their existence
with an allocation of memory within the runtime environment which is then filled with the
instantiated properties of the Class which defines its existence. As with Perceptibles,
Objects maintain a finite existence within the runtime environment and are not eternal.
The physical world is the realm in which the Perceptibles interact and relate to one another
through their various sensory inputs, internal processing mechanisms and external
responses. For Example, a human interacts with the physical world through the five senses
(sight, sound, touch, taste, and smell), processes stimuli internally in the mind and the
emotions, and wilfully enacts physical responses the body.
Similarly, the runtime environment is the realm in which Objects interact and relate to one
another through their various event handlers, private processing methods and their ability
to raise events and invoke methods of other Objects.
The runtime environment and the physical world each provide the realm of time and space
into which Objects and Perceptibles respectively are instantiated. Objects and Perceptibles
bear the properties of their underlying Classes and Forms respectively, each with the
capability of interacting and relating within their temporal realm of existence. Therefore, it
can be concluded that Objects are analogous to Perceptibles.
Objection – Objects are not imperfect instantiations of their Classes
Plato argued that that the Perceptibles were an imperfect representation of their eternal
Forms (Rep. 484b, 485b, 500c). Surely a computer does not make imperfect instantiations of
Objects? Will not each instantiated Object accurately represent the characteristics of its
Class without defect?
It may seem unreasonable to propose that a computer could imperfectly instantiate a Class.
However, propose the same Class is instantiated on several different computer operating
. Following inspection it is revealed that the same Object is in fact rendered
differently upon each operating system5
Why, then, is this the case?
In rendering an Object within the framework of an operating system a process of
interpretation is undertaken. Since the various operating systems provide slightly different
interpretations, the resultant Objects are rendered slightly differently in each case.
Surely it could be argued that each operating system renders its own Objects perfectly. How
can it be said that the rendering is imperfect?
If we say that there are a multitude of perfect renderings for a specific Object, each being
different from the other, then, by reason, none of these renderings can be 100% perfect.
In modern OOP languages a Class is written once and is then run on a multitude of different operation
This proposal can be proven quite simply by opening up the same Internet page in multiple web browsers
(e.g. Internet Explorer, FireFox, Safari, Chrome etc…). Although the general appearance of each page will be
similar, there will be significant differences of rendering in some cases.
Thus, upon comparing one rendered Object with another it would be shown that none of
the Objects are a perfect instantiation of their Class. Therefore, in the same sense that
Perceptibles in the physical world are imperfect representations of their eternal,
unchangeable Forms, so too Objects are imperfect instantiations of their eternal,
Opinions about Objects and the Knowledge of Classes are analogous to
Opinions about Perceptibles and the Knowledge of Forms
Understood from the perspective of God, the Forms are ‘real’ in the sense that they are
eternal and unchanging and completely define the ‘essence’ of being for each thing. In
contrast, the Perceptibles found within the physical world are merely imperfect
representations of the Forms. Given the fallibility of the human senses and the constant
change of the physical world, Plato concludes that ‐ apart from comprehension of the Forms
‐ the closest one can arrive at truth is Opinions about Perceptibles. However, through
reason, Plato believes that one can obtain true Knowledge of the Forms which is of higher
value that the mere Opinions about the Perceptibles (Rep. 478c).
Similarly, from the perspective of the Programmer, the Classes are ‘real’ in the sense that
they too are the eternal and unchanging definitions from which the temporal Objects will be
instantiated. Given the limitations of an Object’s sensory inputs within the inherently
temporal realm of the runtime environment, it is reasonable to assert that ‐ apart from
comprehension of the Classes – all an Object possesses are Opinions about the nature of,
and its relationship to, other Objects. In contrast, should an Object be given access to, and
the ability to comprehend, the Classes from which itself and the other Objects were formed,
such an Object would then possess Knowledge of the Classes which would be of higher
value than the mere Opinions it formerly possessed of Objects.
In the case of both Perceptibles and Objects, the fallibility of sensory mechanisms, as well as
the temporal nature of their respective realms of existence, leads to the conclusion that
Opinions are the highest form of understanding achievable without comprehension of the
Forms and Classes. Through reasoning, which transcends experience of the Perceptibles
and Objects, knowledge of the Forms and Classes is made possible. Therefore, Opinions
about Objects and the Knowledge of Classes are analogous to Opinions about Perceptibles
and the Knowledge of Forms.
Objection – Objects do not comprehend
In the case of Perceptibles, only human beings possess sentience and have the capacity to
‘comprehend’ the Forms through reasoning. In the case of Objects, we are essentially
referring to non‐sentient computer programs that do not have the capacity to ‘comprehend’
or reason and as such they are incapable of arriving at knowledge of the Classes.
Consider for a moment that a human being is the instantiation of the Form of Human, the
Form being designed and created by God. Therefore, the capacity for comprehension and
reasons was instilled by God into the Form of Human so that we, the imperfect humans of
the physical world would possess just such a capacity for comprehension. In a similar way,
suppose our Programmer were to define such a Class as possessed the capability for
comprehension and a mind to reason. That no human programmer has yet developed true
artificial intelligence does not negate the fact that if such a Class were to be created, and its
instantiated Objects came to reason about the other Objects of the runtime environment in
which it resided, would it not come to the conclusion that there were Classes which
represented the ‘essences’ of all Objects? Were such events to occur, the ‘intelligence’ of
this Object would rightly be described as arriving about knowledge of the Classes.
This essay has shown that the modern‐day field of Object‐Oriented Programming (OOP) is
analogous to Plato’s theory of Forms and his conception of Knowledge. This has been
proven in that Classes are analogous to Platonic Forms, and Objects are analogous to
Perceptibles. Correspondingly, Opinions about Objects and the Knowledge of Classes are
analogous to Opinions about Perceptibles and the Knowledge of Forms. Whilst establishing
these claims I have addressed the likely objections to each proposal: 1) That Classes are not
unchanging; 2) That Classes are not eternal; 3) That Objects are not imperfect instantiations
of their Classes; 4) That Objects do not comprehend.
The proof of this analogous relationship raises further questions which space does not
permit pursuit of at this time. Two questions in particular bear mentioning6
. These are: 1)
Were the architects of OOP familiar with Plato’s metaphysics, and did they intentionally
design the language to replicate the principles of Plato’s Forms? 2) If, OOP arose
independently of Platonic influence, what credence does it give to the validity of Plato’s
philosophy of the nature of reality?
A third, and perhaps more philosophical question, may be: If the evidence for the Platonic view of reality
correlates so closely with the evidence for existence inside an Object‐Oriented Program, is it possible that our
present reality is in in fact the result of an Object‐Oriented Program? Or, in other words, how would I prove
that I am not inside the Matrix?
In conclusion, the real‐world applications and the simulation capabilities of Object‐Oriented
Programming strongly support the practical applications of Plato’s theory of Forms. In this
regard, perhaps the common criticism that Plato’s philosophy is too “other worldly”7
not be entirely fair.
Melchert, Norman. The Great Conversation. (New York, NY: Oxford University Press, 2002) p. 127
Huang, Jian. “A Brief History of Object‐Oriented Programming,” University of Tennessee
Department of Electrical Engineering and Computer Science,
http://web.eecs.utk.edu/~huangj/CS302S04/notes/oo‐intro.html (accessed, 11th
Mason, Andrew. Plato. Durham, UK: Acumen Publishing Limited, 2010.
Melchert, Norman. The Great Conversation. New York, NY: Oxford University Press, 2002.
Wikipedia, “Object‐Oriented Programming,” http://en.wikipedia.org/wiki/Object‐
oriented_programming (accessed, 11th May 2011).
Consulted but not cited
Cornford, Francis. Plato’s Cosmology. London, UK: Routledge & Kegan Paul Ltd, 1948.
Cornford, Francis. Plato and Parmenides. London, UK: Routledge & Kegan Paul Ltd, 1969.