The development of new programming languages is a continuous endeavour to better represent binary machine code as natural human thought. However, due to the ambiguity of thought (assumptions, inferences, sub-conscious actions, etc.), no ideal solution has been found for emulating real human thinking. Nevertheless, computer scientists have made vast improvements in programming languages over the years.
One of the newer paradigms of programming languages is object-oriented programming (OOP). Unlike the hierarchal nomenclature of structured programming, OOP focuses on describing objects (chunks of data) and combining them with functions that manipulate data.
Is OOP the next step in mimicking human thought? What are the advantages and disadvantages of OOP versus structured programming? For this Discussion, you will analyse these nuances as you attempt to explain OOP to those of a non-technical background.
Is OOP the next step in mimicking human thought?
Object-oriented programming is a paradigm of the design and development of programs using objects. These are smaller units of a program each of which holds instructions that describe how it should to respond to various data input (polymorphism)- in much the same way as the human thought (Asagba & Ogheneovo 2008). This is fundamentally different to the structured programming paradigm where a program traces a continuous series of events that occur (an algorithm). In object-oriented programming, a programs consists of a sets of modules (objects). The objects enclose both data and processing while concealing their internal mechanisms from the programmers (encapsulation) and differentiating themselves from other objects (Asagba & Ogheneovo 2008).
Object-oriented programming is widely considered to match how humans think about the world because of its modular program development process with clear separation of duties between the objects (Les 1998). Just as the human thought process, the paradigm is capable of breaking down a large system into many smaller components. The extensibility of the objects provides the extra capacity to include new attributes and behaviors (inheritance) (Mudasir 2014). Object reusability is also possible within and across applications (Crawford 1995).
Advantages of OOP versus structured programming?
- Improved program maintainability – Because OOP utilizes “objects” that are modular and extensible, the entire program is easier to maintain in case of issues since updates are only done within the “Objects” thus avoiding large-scale changes.
- Faster and easier development – Object reusability in OOP enables faster and easier program development since programmers are able to search and reuse codes from libraries rich in already developed objects.
- Lower cost of development – Object reusability in OOP also contributes to lower the overall cost of development.
- Superior program development – The reusability of code and faster development time in OOP enables more time, effort and resources to be put into program analysis, design and verification resulting in superior programs (Advantages and Disadvantages of Object-Oriented Programming (OOP)).
Disadvantages of OOP versus structured programming
- Steep learning curve – the procedures involved in OOP may take more time to master than structured programming processes. The programming methods such as polymorphism and inheritance used in OOP are more complex to comprehend.
- Slower and Larger program sizes – OOP programs contain a lot more code lines than structured programming and therefore are slower since they have more instructions to execute.
- OOP is not suited for all programming problems. Some situations may only be programmed using structured programming since OOP will result in inefficient programs (Advantages and Disadvantages of Object-Oriented Programming (OOP)).
ASAGBA, P AND OGHENEOVO, E. 2008. A Comparative Analysis of Structured and Object-Oriented. J. Appl. Sci. Environ. Manage. Vol. 12(4) 41 – 46 Retrieved from http://www.ajol.info/index.php/jasem/article/viewFile/55217/43688
Advantages and Disadvantages of Object-Oriented Programming (OOP). (n.d.). Retrieved from http://saylor.org/site/wp-content/uploads/2013/02/S101-2.1.2-AdvantagesDisadvan
CRAWFORD, D. 1995. Object-Oriented Experiences and Future Trends. Comm. ACM, Vol. 38, No. 146, 1995.
LES H. 1998. Does OO Sync with How We Think? – Computer Science at RPI. Oakwood Computing. Retrieved from http://www.cs.rpi.edu/~chrisc/COURSES/PARALLEL/SPRING-2013/papers/oo-sync-hatton
MUDASIR, Q. 2014. OOP – Benefits and Advantages of OOP – Docs.com. Retrieved from https://docs.com/mudasir-qazi/8326/oop-benefits-and-advantages-of-oop