Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1 
Table of Contents 
INTRODUCTION ..........................................................................................
2 
ESSAY	QUESTION	 	 	 	 	 	 	 	 (WORDS	2674)	
The	modern‐day	field	of	Object‐Oriented	Programming	(OOP)	is	analogous	to	P...
3 
the Form of the good.  The importance of identifying Forms becomes clear when applied to 
Plato’s conception of Knowled...
4 
the focus of execution.   In contrast, OOP did not mandate a single thread of execution but 
instead allowed Objects to...
5 
Objection	–	Classes	are	not	unchanging	
A programmer may change his mind about the Classes and re‐write them.  How can ...
6 
(sight, sound, touch, taste, and smell), processes stimuli internally in the mind and the 
emotions, and wilfully enact...
7 
Thus, upon comparing one rendered Object with another it would be shown that none of 
the Objects are a perfect instant...
8 
Objection	–	Objects	do	not	comprehend	
In the case of Perceptibles, only human beings possess sentience and have the ca...
9 
In conclusion, the real‐world applications and the simulation capabilities of Object‐Oriented 
Programming strongly sup...
10 
BIBLIOGRAPHY	
Works cited 
Huang, Jian. “A Brief History of Object‐Oriented Programming,” University of Tennessee 
Dep...
Upcoming SlideShare
Loading in …5
×

Philosophical Essay - Object Oriented Platonics

  • Be the first to comment

  • Be the first to like this

Philosophical Essay - Object Oriented Platonics

  1. 1. 1  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 
  2. 2. 2  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. INTRODUCTION 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  attest   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  Runtime Environment  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                                                          1  Mason, Andrew. Plato. (Durham, UK: Acumen Publishing Limited, 2010), p. 27 
  3. 3. 3  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                                                          2  Mason p. 27  3  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  May 2011); Wikipedia, “Object‐Oriented Programming,” http://en.wikipedia.org/wiki/Object‐ oriented_programming (accessed, 11th May 2011) 
  4. 4. 4  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.    MAIN ARGUMENT 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.   
  5. 5. 5  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  be made?    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 
  6. 6. 6  (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  systems4 .  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.                                                           4  In modern OOP languages a Class is written once and is then run on a multitude of different operation  systems.  5  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. 
  7. 7. 7  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,  unchangeable Classes.   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. 
  8. 8. 8  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.  CONCLUSION 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?                                                            6  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? 
  9. 9. 9  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  may  not be entirely fair.                                                          7  Melchert, Norman. The Great Conversation. (New York, NY: Oxford University Press, 2002) p. 127 
  10. 10. 10  BIBLIOGRAPHY Works cited  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  May  2011).  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.   

×