Object Oriented Programming

From APIDesign

Revision as of 14:18, 3 April 2009 by JaroslavTulach (Talk | contribs)
Jump to: navigation, search

This is my personal take on OOP. In case you are searching for objective view, then rather see official wikipedia's explanation.

History

OOP is no longer what it used to be. Somehow the original great visions diluted and instead we have class/object/inheritance as present in Java and other OOP languages of these days. The daily experience we have with these languages is so strong, so defining that we sometimes tend to forget that the roots of OOP used to be driven by visions and not technical concepts.

I was reminded about that recently when I read Motivation for DCI at artima website. Just few quotes:

Object oriented programming grew out as vision of the computer
as an extension of the human mind.

Wow! Really? Makes sense, but this is a piece of wisdom lost for a long time, am I right? Even when I learned about OOP I heard more the explanation describing the methodology as inspired by nature. The inheritance was the most natural way to define base class Mammal and subclasses Cat and Dog.

Our brain can definitely capture more complex concepts than the mammal example, so maybe, if we want to stick with the old definition, the meaning of OOP shall be expanded. Definitely beyond the expressive capabilities of C++ and Java.

MVC's goal was to provide the illusion of a direct connection
from the end user brain to the computer "brain"


a large method that represented an entire algorithm was believed to
not be a "pure" object-oriented design
This use of inheritance crept out of the world of programming
language into the vernacular of design
Personal tools
buy