100% found this document useful (1 vote)
2K views34 pages

OOP-02 - History and Advantages of OOP

The document discusses the history and advantages of object-oriented programming (OOP). It traces the origins of OOP concepts back to the 1950s and 1960s at MIT. Key developments included the Simula programming language in the 1960s, which introduced concepts like classes and objects, and Smalltalk in the 1970s. OOP gained widespread adoption in the 1980s and 1990s. Advantages of OOP include reusability, code maintenance, security, design benefits, better productivity, and easy troubleshooting. The pillars of OOP include classes, objects, inheritance, polymorphism, and encapsulation.

Uploaded by

Ahmad
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
100% found this document useful (1 vote)
2K views34 pages

OOP-02 - History and Advantages of OOP

The document discusses the history and advantages of object-oriented programming (OOP). It traces the origins of OOP concepts back to the 1950s and 1960s at MIT. Key developments included the Simula programming language in the 1960s, which introduced concepts like classes and objects, and Smalltalk in the 1970s. OOP gained widespread adoption in the 1980s and 1990s. Advantages of OOP include reusability, code maintenance, security, design benefits, better productivity, and easy troubleshooting. The pillars of OOP include classes, objects, inheritance, polymorphism, and encapsulation.

Uploaded by

Ahmad
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/ 34

History and Advantages

of OOP
Mr. Ahmad
[email protected]

03039464551
Object Oriented Programming
Course Outline
History of
OOP
• Object Oriented Paradigm were not came into existence at once.

• OOP concepts gets matured with the passage of time.

• Let us look at the brief history of OOP:


History of OOP
cont…
• Terminology invoking "objects" and "oriented" in the modern sense
of object-oriented programming made its first appearance at MIT
(Massachusetts Institute of Technology) in the late 1950s and early
1960s.
History of OOP
cont…
• In the environment of the artificial intelligence group, as early as
1960, "object" could refer to identified items (LISP atoms) with
properties (attributes).

• Alan Kay later cited a detailed understanding of LISP internals as a


strong influence on his thinking in 1966.
History of OOP
cont…
• Alan Kay says: “I thought of objects being like biological cells and/or
individual computers on a network, only able to communicate with
messages (so messaging came at the very beginning – it took a while
to see how to do messaging in a programming language efficiently
enough to be useful)”
History of OOP
cont…
• Ivan Sutherland’s influential Sketchpad application was an early
inspiration for OOP.

• It was created between 1961 and 1962 and published in his


Sketchpad Thesis in 1963.

• Sutherland defined notions of “object” and “instance” in his thesis.


History of OOP
cont…
• The objects were data structures representing graphical images
displayed on an oscilloscope screen, and featured inheritance via
dynamic delegates, which Ivan Sutherland called “masters” in his
thesis.

• Any object could become a “master”, and additional instances of the


objects were called “occurrences”.
History of OOP
cont…
• Another early MIT example was Sketchpad created by Ivan
Sutherland in 1960–1961; in the glossary of the 1963 technical report
based on his dissertation about Sketchpad, Sutherland defined
notions of "object" and "instance" (with the class concept covered by
"master" or "definition"), although specialized to graphical
interaction.
History of OOP
cont…
• Also, an MIT ALGOL version, AED-0, established a direct link between
data structures ("plexes", in that dialect) and procedures, prefiguring
what were later termed "messages", "methods", and "member
functions".
History of OOP
cont…
• Simula introduced important concepts that are an essential part of
OOP, such as class and object, inheritance, and dynamic binding.

• In 1962, Kristen Nygaard initiated a project (Ole-Johan Dahl joined


the project later) for a simulation language (Simula) at the Norwegian
Computing Center, based on his previous use of the Monte Carlo
simulation and his work to conceptualize real-world systems.
History of OOP
cont…
• The object-oriented Simula programming language was used
mainly by researchers involved with physical modelling, such
as models to study and improve the movement of ships and
their content through cargo ports.
History of OOP
cont…
• In the 1970s, the first version of the Smalltalk programming language
was developed at Xerox PARC by Alan Kay, Dan Ingalls and Adele
Goldberg.

• In the 1970s, Smalltalk influenced the Lisp community to incorporate


object-based techniques that were introduced to developers via the
Lisp machine.
History of OOP
cont…
• Experimentation with various extensions to Lisp eventually
led to the Common Lisp Object System, which integrates
object-oriented programming and allows extension via a
Meta-object protocol.
History of OOP
cont…
• In the 1980s, there were a few attempts to design processor
architectures that included hardware support for objects in memory
but these were not successful.
History of OOP
cont…
• In the mid-1980s Objective-C was developed by Brad Cox, who had
used Smalltalk at ITT Inc. (an American manufacturing company).

• Furthermore in 1980s Bjarne Stroustrup, who had used Simula for his
PhD thesis, eventually went to create the object-oriented C++.
History of OOP
cont…
• In 1981, Goldberg edited the August issue of Byte Magazine,
introducing Smalltalk and object-oriented programming to a wider
audience.

• In 1986, the Association for Computing Machinery organized the first


Conference on OOP, Systems, Languages, and Applications
(OOPSLA), which was unexpectedly attended by 1,000 people.
History of OOP
cont…
• In the early and mid-1990s OOP developed as the dominant
programming paradigm.

• These included Visual FoxPro 3.0, C++, and Delphi.


• Its dominance was further enhanced by the rising popularity of
graphical user interfaces (GUI).
Advantages of
OOP
• There are many advantages of OOP as this is one of
the core
• development approaches (paradigm) which is widely
accepted.

• Let’s see what the advantages OOP offers to its users:


Advantages of OOP
cont…
• Re-usability: It means reusing some facilities rather than building
them again and again.

• This is done with the use of a class.

• We can use it as many times as we need.


Advantages of OOP
cont…
• Code Maintenance: This feature is more of a necessity for any
programming languages; it helps users from doing re-work in many
ways.

• It is always easy and time-saving to maintain and modify the existing


codes by incorporating new changes into them.
Advantages of OOP
cont…
• Security: With the use of data hiding (using access specifiers private)
and abstraction mechanism, we are filtering out limited data to
exposure, which means we are maintaining security and providing
necessary data to view.

• Data abstraction refers to providing only essential information to the


outside world and hiding their background details.
Advantages of OOP
cont…
• Design Benefits: Object-Oriented Programs forces the
designers to have a long and extensive design phase, which
results in better designs and fewer flaws.

• In OOP, we have to focus on: Classes, Objects, Data


Abstraction, Inheritance, Polymorphism, Encapsulation, etc.
Advantages of OOP
cont…
• Better productivity: with the above-mentioned facts of using the
OOP definitely enhances its users overall productivity.

• An OOP programmer can add up new software objects to make


completely new programs.

• A good number of libraries with useful functions make it possible.


Advantages of OOP
cont…
• Easy troubleshooting: Many times, something has gone wrong, which
later becomes so brainstorming for the developers to look where the
error is.

• Working with OOP language, you will know where to look for errors.
Advantages of OOP
cont…
• Problems solving: Decomposing a complex problem into
smaller chunks or discrete components is a good practice.

• The broken components can be reused in solutions to


different other problems (both less and more complex), or
either they can be replaced by the future modules that
relate to the same interface with implementations details.
Problem Solving in
OOP
• Object-oriented problem solving approach is very similar to the way a
human solves daily problems.

• It consists of identifying objects and how to use these objects in the


correct sequence to solve the problem.
Problem Solving in OOP
cont…
• In other words, object-oriented problem solving can consist of
designing objects whose behavior solves a specific problem.
• A message to an object causes it to perform its operations and solve
its part of the problem.
Problem Solving in OOP
cont…
• The object-oriented problem solving approach, in general, can be
divided into four steps. These are:

1. Identify the problem,

2. Identify the objects needed for the solution,

3. Identify messages to be sent to the objects, and

4. Create a sequence of messages to objects that solve the problem


OOP Pillars
• In object-oriented programming, a class is a blueprint for creating
objects (a particular data structure), providing initial values for state
(member variables or attributes), and implementations of behavior
(member functions or methods).
OOP Pillars
• In object-oriented programming, a class is a blueprint for creating
objects (a particular data structure), providing initial values for state
(member variables or attributes), and implementations of behavior
(member functions or methods).
OOP Pillars cont…
Classes and Objects
• Attributes and methods are basically variables and functions
that belongs to the class. These are often referred to as
"class members".

• A class is a user-defined data type that we can use in our


program, and it works as an object constructor, or a
"blueprint" for creating objects.
OOP Pillars cont…
Classes and Objects
OOP Pillars
cont… Classes
and Objects
• Other OOP basic concepts/ pillars are:

• Data Abstraction

• Polymorphism

• Encapsulation

• Inheritance

• To be continued…

You might also like