Differences between Procedural and Object Oriented Programming

By | October 31, 2023

1. Procedural Programming
Procedural Programming is based on structured programming. It has procedures which are sequences of computational steps. These procedures can be called at various points during program execution.

Languages used in Procedural Programming: BASIC, FORTRAN, Pascal, ALGOL, COBOL and C.

2. Object-Oriented Programming
Object-oriented programming is based on objects. Objects have data (attributes) and code (methods). programs are designed with objects interacting with the real world. Most object-oriented programming languages are class-based where objects are instances of classes.

Languages used in Object-Oriented Programming: Java, C++, C#, Python, Objective-C, Dart, Swift, Scala. PHP, JavaScript, Ruby, Perl,

Procedural Programming vs Object-Oriented Programming
Below are some of the differences between object-oriented and procedural programming :

Aspect Procedural Programming Object-Oriented Programming
Program Structure Divided into functions Divided into objects
Programming Approach Top-down approach Bottom-up approach
Access Control No access specifier Has access specifiers like private, public, protected, etc.
Adding Data and Functions Not easy to add Easy to add
Data Security Less secure More secure
Function Overloading Not possible Possible
Data Hiding and Inheritance Not used Used
Data vs. Function Importance Function is more important than data Data is more important than function
Real-World vs. Unreal-World Based on the unreal world Based on the real world
Program Scope Medium-sized programs Large and complex programs
Abstraction Concept Procedure abstraction Data abstraction
Code Reusability Absent Present
Examples C, FORTRAN, Pascal, Basic, etc. C++, Java, Python, C#, etc.

RECOMMENDED: Difference between Cellular and Ad Hoc Wireless Network

Please write comments if you find anything incorrect. A gentle request to share this topic on your social media profile.

Author: Mithlesh Upadhyay

I hold an M.Tech degree in Artificial Intelligence (2023) from Delhi Technological University (DTU) and possess over 4 years of experience. I worked at GeeksforGeeks, leading teams and managing content, including GATE CS, Test Series, Placements, C, and C++. I've also contributed technical content to companies like MarsDev, Tutorialspoint, StudyTonight, TutorialCup, and Guru99. My skill set includes coding, Data Structures and Algorithms (DSA), and Object-Oriented Programming (OOPs). I'm proficient in C++, Python, JavaScript, HTML, CSS, Bootstrap, React.js, Node.js, MongoDB, Django, and Data Science.