Object Oriented Philosophy

Wading through the marshlands of object-oriented programming, one must eventually realize that two fundamental skills are essential to truly embody the spirit of the object-oriented paradigm:

  1. The ability to abstract one’s thought processes.
  2. The ability to perceive harmony within abstract chaos.

Humanity’s knowledge base is replete with discussions on what object-oriented programming is, its benefits, and how to apply it. Today, however, we will venture into the realms of our minds, which, for obvious reasons, perform millions of calculations to perceive the world in milliseconds — using concepts far more complex than mere OOP.

Abstraction as the selective examination of a problem.

The target of abstraction is to suppress the inconsequential aspects and highlight those that define a purpose.

The idea is to emphasise the existence of an object rather than the consequences of its existence. Abstraction is always centred around the fulcrum of a purpose, and this very purpose defines its existence.

Multiple abstractions of the same entity are possible, depending upon the desired purpose. All abstractions are inherently incomplete and inaccurate. Reality itself is imperfect; any description of it is a mere approximation. All human words and language are abstract and incomplete representations of reality.

Despite this inherent fallacy, abstractions define purpose. Hence, one should not strive for absolute truth but rather for adequacy for a given purpose.

There is no single “correct” model of a situation, only adequate and inadequate ones.

James Rumbaugh (inventor of UML)

Abstraction as the formulation of harmony within chaos.

Processes in life may appear Brownian, seemingly random and chaotic. Yet, to the discerning eye, there is an unchallenged harmony of a unified purpose.

The existence of harmony is governed by the degree of adequacy of the abstraction. In turn, the presence of harmony allows us to reduce the multiplicity of abstractions and converge into a more definite existence of an object.

When this existence serves our purpose, we then have an adequate abstraction.

The question then is, how do we build for an evolving purpose? The answer, my friend, is inherently fluid. It arrives delicately balanced between vision and adaptability. No purpose is permanent, and nothing substantial emerges from rigid engineering confined by time and space.

Life is a journey of meandering roads, punctuated by crossroads that bring defining moments. In the lifecycle of logic, the art lies in allowing it to evolve naturally, without overthinking, and at each crossroad, reassessing its purpose.

Happy coding to you all!


If you found meaning in this, you will likely appreciate the work of Edward de Bono as much as I do. De Bono introduced the concept of lateral thinking in his 1967 book, “The Use of Lateral Thinking.” This method involves approaching problems from new angles and employing creative techniques to find innovative solutions, contrasting with the traditional step-by-step process of vertical or logical thinking.

Fair warning, however: while his books are imbued with tangible insights, they are often written in a rather dry style, which belies the vibrant essence of his ideas. The deliberations are often depicted from an old-world software development model of high-flying consultancy groups. But, I am sure you can look past that and appreciate the beauty of the function in it’s form.

5 responses

  1. As I was going through this blog, I realized that the concepts conveyed in it were applied to the blog itself. The concept of object oriented design was broken up into two primary skill sets using the concept of “… formulation of harmony within chaos”. And the overall content was based upon abstraction of the already existing concrete concepts.
    Personally, my OOP (P-> Philosophy) is slightly different. Essentially both concepts are same, only ordered and structured differently. However, like he quoted – “There is no single ‘correct’ model of a situation, only adequate and inadequate ones”.

    Liked by 1 person

    1. Well… this is the first comment in my life that is written in third person!
      And, I am pretty interested in knowing the slightest of differences we have, in terms of OOP.

      Like

  2. All problems eventually boil down to a problem of granularity.
    That is, the quintessential question- Where do we draw the line? (Which implicitly contains a question in itself. Can a line be drawn at all?)

    If we extend truth to have dimensional qualities, we have some comfort and, therefore, new forms of discomfort.

    Like

    1. I get your allusions!

      I also feel that striving for the most relativistic state is equally impossible as attaining the absolute. Hence, line or no line, we will always be biased.

      Like

  3. Obessively obese philosophy
    ——-start——————–

    I see some words,
    which i can count

    colleted heap

    randomly thought
    tactfully placed

    well hailed.

    life is simpler.

    ——–end————

    Like

Leave a comment