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

Popular posts from this blog

A little bit about myself

Let's get acquainted! Junior student at Inha University in Tashkent, Software Engineer at Exadel, web development enthusiast, and just a cool guy😅. But, you can just call me Abdujabbor. In this blog we will talk about development, engineering, programming, and IT in general. If words like Frontend, SOLID, CI/CD do not scare you, you are in right place. If these words still scare you, stay tuned anyway, it is the best time to start.  In the first post, I will talk about my experience in a programming, and briefly introduce to technologies I used and my interests. My first experience in programming was in high school with C++. Like a true oldschool programmer I decided to start with low level programming language(PL),  and also because it was the only non-fiction book I found at home while I was sick for a month. Reading the book and writing code was quite fun and challenging. When my first program successfully compiled and showed output I felt so satisfied, and understood what...