Skip to content

Object Oriented Programming and platonism

April 7, 2011

I think OOP is a classic result of platonistic ideas of reality. In OOP one presupposes that when we see a car there is an abstract object that exists metaphysically called say “car-ness” which under pins the properties of this car. Hence, in OOP, one defines a class called Car and then that Toyota Corolla is just an instance of this “car-ness”.

Computer Scientists are not necessarily philosophers but in the case of OOP, I see some metaphysical presuppositions operating in this programming paradigm, without a programmer knowing it.

Do not get me wrong, but being involved in maths, I can not help but be platonistic when it comes to these types of issues.

Advertisements
3 Comments leave one →
  1. April 7, 2011 6:52 pm

    The great thing about reality is it there for everyone to see, touch, feel ultimately observe and experience firsthand. Your concerns regarding Computer Scientist using OOP to draw philosophical conclusions is a valid one. The only true test of an idea, concept, and theory is through the test of time and constant efforts of thinkers, academics, professionals … etc. to challenge based on knowledge, logic and observation. If that means there are pockets of nonsensical or irrational ideas that pop up from time to time then that is small price to pay for progress. OOP is a programming paradigm, can it solve world hunger, energy crises or world peace probably not. Can you use OOP to design/build brilliant software that helps people in a wide variety of vocations in life that targets world hunger, energy or peace and maximises their productivity, absolutely! Like everything in life there are compromises and a balance that needs to be achieved first. The good news is once the hype and excitement is over the true test of an idea or concept begins, the digital world around us only speeds that process up. It is also reassuring to know the software used to achieve this is designed/built using OOP paradigm.

    • April 7, 2011 7:20 pm

      Ozzie,

      Thanks for the comment. I will look deeper in to the history of OOP. By no means do I suggest that the O. H. Dahl and K. Nygaard were purposely and consciously been platonic when they developed their OO concept. Most scientists are platonic without being cognizant that they are one.

      Platonism seems to be the default view of reality mostly adhered to by scientists and by default when Dahl and Nygaard set out their paradigm, it is no wonder their classification technique could only be platonic.

      LPC

      • April 8, 2011 4:37 pm

        Again I totally agree with you, Object Oriented Programming is the process of mapping the physical observable world in terms of manageable code. Given that these physical systems have evolved and are efficient to some degree, basing software design on that ensures the solution is as good if not better then what the eco system has produced. So you are right regarding Computer Scientist platonic approach however the observer needs to understand what they are observing or in engineering terms understand the problem domain. All systems make compromises, to what level of detail do you go in your design when you are mapping the real world with your platonic view? For example let’s take the Car class, this is a container object for an engine, which in turn contains a carburettor that contains a filter… etc. So the question now becomes how far do you drill down before stopping, do you go all the way down to the quantum level and start modelling protons, electrons … etc If this is the case then any system you design will require many thousands if not millions of classes. Now the new question becomes where do you draw the line, thus our view of the world is no longer purely platonic as we have compromised our design based on an objective or a clear understanding of the problem domain. The other thing that one need’s to factor in is that a theory is created with a context or application in mind. Over many years the same theory can be used to solve many problems that was never considered by the original inventor/creator of the theory. Just to throw a spanner in the works, you could argue that given there are compromises in the design, as no one in their right mind would build a class library of over a millions classes, just to build a billing system , the system is not reflective of the real world and therefor non-intelligible. Computer scientists in their quest to solve a problem are not purely platonic because of practical compromises. We may need to borrow Albert Einstein’s wave particle duality principle of quantum physics to address this dilemma, that way everyone is happy.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: