Skip to main content

OOP from non-technical angle

 If you have been exposed to software coding/designing  then you probably have heard about OOP. OOP - Object Oriented Programming, is a programming paradigm that builds the structure of application and handles communication between modules by the usage of classes and objects. 

Now, in simple words. Let's start with comparison. There are other programming paradigms as Functional programming or Procedural programming. So, why OOP is overwhelmingly popular compared to other paradigms whereas almost all popular programming languages(PL) are either fully designed based on OOP concepts or partially supports it. 

First of all, OOP is one of the most researched and consistent paradigms(snowball effect). Where have it started? The main influencers of the start of hype around OOP were big tech companies and PLs they primarily used. Microsoft with C++ (later with C#), Oracle with Java, Apple with Objective C. But, we still have not found the root reason. Why these companies have chosen/designed PLs based on OOP. Back to history, OOP offered better structured code for human perception. Therefore, code written according to OOP principles was more readable, easier to understand, and as a result cheaper to modify and maintain for the owners/business



So, why we love (or hate😓) OOP? It allows to create structures (called class) that stores all data and functionality in single place. The way OOP works is similar to way we perceive real world. For example: "Apple, it has color, taste, size, weight but for human it is a single object. We do not store all those data separated from the actual apple. If we need it's weight - we use scale, it's taste - we can eat it. Only thing we need is the actual apple and some tool to extract data. So for OOP, we just need the actual object and right method (function) to access the required data". It was a very simple and technically inaccurate explanation. However, I hope I was able to explain the basic idea of OOP in non-technical language.

In reality, OOP is a sophisticated paradigm with numerous basics and principles. Exposure to OOP may take long time for beginners and requires technical knowledge and experience. But more on that in next posts... 

Comments