0% found this document useful (0 votes)
13 views4 pages

Object Oriented Programming Concepts Limitations and Application Trends

This document discusses the concepts, limitations, and application trends of object-oriented programming (OOP) languages such as C++, Python, and Java. It highlights the advantages and disadvantages of these languages, their unique features, and the challenges faced in their implementation. The article concludes that OOP will continue to be a significant coding style due to its flexibility and efficiency, despite its complexities.

Uploaded by

Sara Nieto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views4 pages

Object Oriented Programming Concepts Limitations and Application Trends

This document discusses the concepts, limitations, and application trends of object-oriented programming (OOP) languages such as C++, Python, and Java. It highlights the advantages and disadvantages of these languages, their unique features, and the challenges faced in their implementation. The article concludes that OOP will continue to be a significant coding style due to its flexibility and efficiency, despite its complexities.

Uploaded by

Sara Nieto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

2021 5th International Conference on Information Systems and Computer Networks (ISCON)

GLA University, Mathura, India. Oct 22-23, 2021

Object Oriented Programming: Concepts,


Limitations and Application Trends
Nehul Singh Satyendra Singh Chouhan Karan Verma
Student, Department of Computer Assistant Professor, Department of Assistant Professor, Department of
Science and Engineering, Computer Science and Engineering, Computer Science and Engineering,
IIIT Sricity, Chittoor, INDIA MNIT Jaipur, INDIA NIT Delhi, INDIA
[email protected] [email protected] [email protected]
2021 5th International Conference on Information Systems and Computer Networks (ISCON) | 978-1-6654-0341-2/21/$31.00 ©2021 IEEE | DOI: 10.1109/ISCON52037.2021.9702463

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

978-1-6654-0341-2/21/$31.00 ©2021 IEEE 1


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.
The procedural or structured codes work well for small
tasks only, as it is hard to implement debugging, if the
coding length is large and complex. Whereas code re-
usability features of OOPs make it clearer and less complex
coding technique. However there have been some limitations
with OOP coding techniques such as complexity control
[14]. Depending upon the applications, the OOP codes are
complex in nature and possess increasing complexity trends
as and when these codes are updated to cover future
requirements. Controlling ever-increasing complexity issues
may result in expensive procedures with increased
probability of failure. Sometimes OOP code developers face
issues due to crosscutting concern, code scattering and
tangling for their optimum implementation [14]. Uses of
OOP codes are limited due to requisite vertiginous methods,
large size and slow processing as compared to procedure-
based programs. That’s why; many problems can be solved
by other programming techniques more conveniently than
Fig. 1: Basic concepts and popular applications of OOPs OOPs programs.
class (termed as child or sub-class) capable to deriving
characteristics of another class (base or parent class). Based III. DISCUSSIONS ON C++, PYTHON AND JAVA
on uses, inheritance can be classified as single, multiple, The C++ is a high-level and multi-paradigm
multi-level, hierarchical and hybrid. The terms; data programming language created by merging features of C and
abstraction and data hiding are important concepts of object- Simula 67 [15]. Over the years, this coding technique has
oriented programming, which are used to hide the data and to been evolved to facilitate low-level memory manipulation in
allow the user to access relevant data only. This is addition to the generic and functional features [5]. Being a
accomplished by use of a class or header file in C++ fast and compiled programming language, it has gained
programming. Past three decades, many programming popularity for its control feature to manage the memory
languages that use concepts of OOPs have been in use for spaces efficiently. However it doesn’t support dynamic
various applications due to their unique features such as C++ memory allocation, garbage pickup and threads built-in
for banking, cloud and distributed systems, Python for real- facilities. Due to its high-level programming nature, C++
time and expert systems, artificial intelligence, client-server codes usually are complex and less flexible [16]. As
systems, etc. Figure 2 depicts important features of object- compared to Java, the C++ is not an impressive
oriented programming techniques. Important advantages of programming language, however it is easier to manage a
OOP languages can be summarized as flexible and better- C++ code with less memory. Other important pros and
quality coding techniques, easy and effective cons of C++ programming language can be checked from
troubleshooting, code reuse facilities and enhanced figure 3. The Python is a high-level, interpreted
productivity [10-11]. Prior to the popularity of OOPs, coding programming language, suitable to write clear and logical
methods such as C, Pascal and BASIC were in practice for code for a wide range of projects.
most applications, which are termed as the procedure-
In recent times, uses of Python have achieved a
oriented programming (POP). With the POP approach, the
tremendous growth due to its availability as an open-source
program is procedural in nature with functions to perform
tool which promotes easy and frequent readership. In recent
different tasks [12-13].
times, its uses have increased tremendously for data
analytical problems, artificial and machine learning
frameworks [17].
The dynamic nature of Python makes it a slow language
due to higher execution time, hence not suitable for faster
applications. Also, it is not suitable for memory optimized
processes, due to requisite large memory spaces. It is also
vulnerable for runtime errors and faces problems while
accessing the huge databases, thereby not suitable for client-
side and big enterprise applications.
Java is a dynamic programming language and has been in
use to develop large desktop applications due its platform
independence. Java has been preferred as a high-performance
coding for distributed internet environment and high-
performance computing, if used with Just-in-Time compilers
[18]. The multithreading feature enables Java programming
to perform many tasks simultaneously. It is also suitable to
avoid error-prone situations with use of time error and
Fig. 2: Important features of OOPs runtime checking compilation process. Java developers use
public-key encryption for authentication purposes and use its
secure features to define virus-free, tamper-free systems.

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.

You might also like