Object Oriented Programming Concepts Limitations and Application Trends
Object Oriented Programming Concepts Limitations and Application Trends
Abstract— This article reviews and discusses various language. It is a widely used rich technology and has been
applications of object-oriented programming languages. A preferred to develop soft platforms for mobile, enterprise,
history in brief on development of object-oriented methods gaming, business and cross-platform computing applications
eventually leading to emergence of important soft [8-9]. This article reviews basic concepts and important
programming techniques is discussed. Emphasis mainly is features of OOPs. Later paragraphs are written to discuss
given to differentiate some object-oriented programming popular OOPs such as C++, Python and Java with their
languages such as; C++, Python and Java. The pros and cons unique features, application areas and limitations.
of these programming languages are also highlighted in view of
their futuristic developments and possible application areas.
II. GENERAL CONCEPTS OF OBJECT-ORIENTED
Keywords— Object oriented programming, Popular soft- PROGRAMMING
languages, limitations, Current and future trends Object-oriented programming has been preferred for
modeling and to provide solutions for complex tasks with
I. INTRODUCTION use of object interactions. In OOPs, objects are created by
Soft programming languages with qualities such interrelating variables and functions, whereby variables and
as fast computation, easy-to-use, and easy-to-deploy have functions define properties and behavior respectively for
been attracting user and business communities to adopt them created objects. In OOPs coding, the data and respective
for various applications. Demand and the number of functions are bound together in such a way that a specific
engineers equipped with soft skills have been growing since part of the code can access bonded data with its respective
more than 2-decades at a tremendous rate much faster than function only. Popular OOPs are Objective C, C++, Perl,
any other technical skill. The object-oriented analysis and Python, JavaScript, Simula, PHP, Smalltalk, Emerald, Object
design approaches bound practitioners to think for Pascal, Common Lisp, etc. [10-11]. OOP codes are capable
development of programming languages suitable for of implementing real-world entities such as inheritance,
applications covering the objects and classes. This polymorphism, data hiding, etc, that’s why visualization is
development era was further led by coding practitioners to easier with OOPs. Some basic concepts mostly used with all
introduce various languages, all classified within a single types of OOPs are classes, objects, encapsulation, data
entity; object-oriented programming (OOP), suitable hiding, inheritance, abstraction, polymorphism, interface and
for building user interfaces—windows, buttons and menus methods. A class is a user-defined data-type, which
[1]. The OOP language; C++ have been used to develop 2D represents a blueprint for an object in objects-oriented
and 3D interactive software environments for structural programming language. It is the basic building block of
analysis by integrated computational approach into graphical various programming techniques such as C++, Python, Java,
user interfaces for Windows-98 and Windows-NT operating etc. A class can have multiple objects which have properties
systems [2]. It also supports reusable and behaviour that are common for all of them. An object
interfaces, multithreading with better error-handling has to be created to access the members of a class and to
facilities, therefore has been preferred to develop automation allocate memory in the programming.
controllers, data processing, computational chemistry, The encapsulation is used to bind the function with the
physiology, biology, machine learning and statistical data in a single unit. Specific use of encapsulation to hide the
computing [3-5]. In the year of 1989, utilizing concepts of data originates from other important concepts in OOPs; data
object oriented methods; Guido Van Rossom introduced an abstraction and data hiding. Figure 1 summarizes important
interpreted programming language; Python, which attracted basic concepts and popular applications of OOPs.
developers to work upon since then. Perhaps, it has become
one among other popular programming languages such as Polymorphism in OOPs defines the efficiency to perform
classics Java, C, and C++. Its unique features have been used the task with use of multiple forms. For example; the
for applications like desktop-based GUI and Web based operator and function overloading are methods by which
applications, games and with emerging areas such as natural polymorphism can be achieved like in C++. Operator
language and big data processing [6-7]. James Gosling, overloading executes multiple behavior for different
1995 (Sun Microsystems Inc.) invented a class based and instances, while function overloading performs multiple
concurrent computer programming description; termed as operations for similar cases. The inheritance concept in
Java, which is an object-oriented and secured programming OOPs is used for reuse of the codes. Inheritance makes a
2
Authorized licensed use limited to: Universidad Nacional Abierta y a Distancia. Downloaded on April 04,2024 at 22:26:12 UTC from IEEE Xplore. Restrictions apply.
Fig. 3: Important advantages and disadvantages of C++, Python and Java programming languages
Java programs are capable of handling vast amounts of run- x Encapsulation of procedures: It is expected that a
time information requisite for smooth running of interactive procedure should be encapsulated properly, while
applications. Interpretation of the code at the machine level defining the object. However, in a situation, whereby
makes Java programming slow as compared to native a procedure may appear with two or more objects;
languages such as C or C++, due to time needed for the developers should use procedure encapsulation in
compilation, abstraction and to interpret at the machine a way that all such objects can inherit it from each
levels. The Java code also consumes more memory space other. Although this will lead to a complex code,
and leads to complex structuring. Lack of back-up facilities eventually will pose difficulties for the application
and requisite long and complex sentences are other programmer to manage the objects. Therefore,
limitations for Java coding techniques. The figure 3 proper planning and thought process would be
summarizes important pros and cons of C++, Python and needed from a developer to have either a stand-alone
Java. procedure-based object or to work simultaneously
with objects having a common encapsulated
IV. CHALLENGES AND FUTURISTIC procedure.
APPROACHES x Object identification: With ever-increasing demands
For futuristic applications, developers working with C++ to write object-oriented codes on real-world things,
have to chalk out plans to build appropriate libraries to identification and creation of requisite objects have
provide flexible interfaces using generic programming skills. also been a challenging task. Until necessary,
The use of C++ for distributed computational methods and at keeping the object undivided would indeed help to
the level of individual components is expected in near future. maintain and to upgrade the code for its future use.
New codes with the concept of OOPs have to be developed, Placing attributes and member procedures with
which will be platform-independent for their best use and to objects will be a better choice to distinguish them
cover a wider range of applications. Variation in coding style with each other. Restricting the numbers of objects
has to be adopted by the developers to generate component- in a code is recommended, as it is easier to maintain
oriented software with support of investment, better design code which uses few objects.
criterion and disciplined programming steps. There are many
x Use of multilevel inheritance: In recent times, multi-
challenges, which need to be addressed to utilize object-
level inheritance has been created for optimum use
oriented programming for real-world applications [19-23].
of OOP codes, however at the cost of complex
x Relational database: For most enterprises, data is hierarchy, which is more difficult to handle. Perhaps
stored in a relational database pattern, which is regular updates in the code will be more useful and
suitable for procedural but not with object-oriented easier to implement rather than creating unnecessary
programs. However, OOPs developers have been inheritance levels. Depending upon the requirements,
using functions such as; <insert>, <search>, developers may choose to keep the inheritance levels
<modify> and <delete> to accommodate relational up to three or less until it is very important to have
databases. few more.
3
Authorized licensed use limited to: Universidad Nacional Abierta y a Distancia. Downloaded on April 04,2024 at 22:26:12 UTC from IEEE Xplore. Restrictions apply.
V. CONCLUSION [7] Charles Severance "Guido van Rossum: The Early Years of Python”,
Computer, 48(2): 7-9, 2015.
In this article, important features and applications areas [8] O’Regan G. “James Gosling. In: Giants of Computing” Springer,
of various OOP languages have been discussed in brief with London, 2013.
limitations in the present scenario. Theories covered in the [9] Shubham Singh, Hansraj Yadav, Amarjeet Singh “Overview of Java
article also anticipated that OOPs existence and popularity Programming” International Journal of Progressive Research in
will be continued due to their flexible, efficient and non- Science and Engineering, 1(2):75-77 2020.
proprietary nature. The object-oriented programming shall [10] Andrew P. Black “Object-oriented programming: Some history, and
remain an important coding style for decades to come and challenges for the next fifty years” Information and Computation,
231:3-20, 2013.
will be able to meet futuristic challenges. Acceptance of
[11] Stroustrup B. “What is “Object-Oriented Programming”? In: Bézivin
OOP codes will remain high and the demand will drive by J., Hullot JM., Cointe P., Lieberman H. (eds) ECOOP’ 87 European
internet networks, World Wide Web and telecom interfaces Conference on Object-Oriented Programming. ECOOP 1987. Lecture
in near future as well, however variation in OOP coding has Notes in Computer Science, vol 276. Springer, Berlin, Heidelberg,
to maintain as per the vendor requirements and to compete 1987.
with new soft languages. Possible competition with other [12] White, G., Sivitanides, M. “Cognitive Differences between
functional languages may compel OOP developers to Procedural Programming and Object Oriented Programming” Inf
Technol Manage 6,333–350, 2005.
introduce functional features in their present coding style.
Unique and valuable aspects of OOPs keep it omnipresent [13] Farooq MS, Khan SA, Ahmad F, Islam S, Abid A “An Evaluation
Framework and Comparative Analysis of the Widely Used First
even when it has its drawbacks and therefore will be useful Programming Languages” PLoS ONE 9(2): e88941, 2014.
for various applications in future as well. [14] Massimiliano Dessì, “Spring 2.5 Aspect Oriented Programming”,
Packt Publication, pages 332, ISBN: 9781847194022, 2009.
ACKNOWLEDGMENT [15] Jiang Guo “C and C++, Editor(s): Hossein Bidgoli, Encyclopedia of
Information Systems”, Elsevier, Pages 99-111, ISBN
We pay our gratitude to all contributors, whose works 9780122272400, 2003.
have enlightened us with knowledge to prepare this article. [16] Ian Joyner “C++?? A Critique of C++ and Programming and
We also acknowledge the Pandemic Covid-19 Era, Language Trends of the 1990s” 3rd Edition, pages 60, 1996.
subsequent lockdown and virtual study mode to motivate us [17] Nguyen, G., Dlugolinsky, S., Bobák, M. et al “Machine Learning and
for this study. Deep Learning frameworks and libraries for large-scale data mining:
asurvey” Artif Intell Rev 52, 77–124, 2019.
[18] Aidan Fries “The use of Java in large scientific applications in HPC
REFERENCES environments” PhD thesis, submitted to the University of Barcelona,
[1] Zheng, Li Sun “Object-oriented method for graphical user interface pages 223, 2012.
design in a distributed system environment”. Graduate Student [19] Sikha Bagui “Achievements and Weaknesses of Object-Oriented
Theses, Dissertations, & Professional Papers. 5108, 1993. Databases”, in Journal of Object Technology, vol. 2, no. 4, July-
[2] Marco L. Bittencourt, Claudioo A. C. Silva, Raul A. Feijoo, “Object- August 2003,pp.29-41.
oriented Programming Applied to the Development of Structural [20] Lim Tong Ming, Lee Sai Peck, “Extended Object Languages for the
Analysis and Optimization Software”. J. Braz. Soc. Mech. Sci. 23, Extolware Persistence Framework” Issues in Informing Science and
2001. Information Technology, pages: 407-416, 2004.
[3] Russell T. Berman “Using C++ to Write Automation Controller [21] Johanna Wenny Rahayu, David Taniar, Eric Pardede, “Object
Software. JALA” Journal of the Association for Laboratory Oriented Oracle” IRM Press, pages: 326, ISBN 1-59140-608-0, 2006.
Automation, 12(1):12-16, 2007. [22] Frank Stajano “A Gentle Introduction to Relational and Object
[4] Mirams GR, Arthurs CJ, Bernabeu MO, Bordas R, Cooper J, Corrias Oriented Databases. ORL Technical Report TR-98-2, pages: 37,
A, et al. “Chaste: An Open Source C++ Library for Computational 1998.
Physiology and Biology” PLoS Comput Biol 9(3): e1002970, 2013 [23] M. Aniche, J. Yoder and F. Kon, "Current Challenges in Practical
[5] Rassokhin, D. “The C++ programming language in cheminformatics Object-Oriented Software Design," 2019 IEEE/ACM 41st
and computational chemistry”. J Cheminform 12, 10, 2020. International Conference on Software Engineering: New Ideas and
[6] Charles Dierbach “Python as a first programming languag” Journal of Emerging Results (ICSE-NIER), 2019, pp. 113-116.
Computing Sciences in Colleges, 29(3): 73, 2014.
4
Authorized licensed use limited to: Universidad Nacional Abierta y a Distancia. Downloaded on April 04,2024 at 22:26:12 UTC from IEEE Xplore. Restrictions apply.