Object Oriented Programming : A Brief History and its significance

18
Object Oriented Programming “Programs must be written for people to read, and only incidentally for machines to execute.” - Harold Abelson

Transcript of Object Oriented Programming : A Brief History and its significance

Object Oriented Programming

“Programs must be written for people to read, and only incidentally for machines to execute.”

- Harold Abelson

History and OriginBest way to Predict the future is to Invent it.

- Alan Kay (Father of OOP’s)

History of OOP’sFirst Introduced by Programmers at MIT AI Lab in 1960’s.

Simula67 was first programming language to carry OOP features.

First used to solve problems of Discrete event Simulation Problems.

OOP’s made first appearance in 1970’s with Smalltalk Programming Language Developed by Alan Kay at Xerox.

It had Major features like Object,Classes,Procedures etc..

Initially designed for academic research but now plays a major role in Industry.

Features of OOP’s.

Computers are Good at following instructions but bad at reading your mind

- Donald Knuth

OOP Features..Every Program can be divided into classes and objects.

Objects are ‘Instance’ or a ‘copy’ of the ‘Blueprint’ class.

Classes contain Data and Functions or Procedures that manipulate Data.

Concept of OOP ‘Bind’ Both Data and Function into single unit.

Efficient ‘Data Binding’ using Classes ,Objects and Subroutines.

Strong Data Security using ‘Encapsulation’ techniques.

Code reusability using ‘Inheritance’.

Efficient Communication using ‘Message Passing.’

Code reduction and templating using ‘Polymorphism’.

Fast and efficient.

Very Powerful Programming Practices compared to POP ( Procedural oriented Programming) and FP ( functional programming).

Programmer Friendly ‘Abstraction’ for easy and Rapid Application Development.

Object’s and Classes Reduced Complexity of code very significantly.

Highly efficient Modularity.

Advantages and Use Cases

Measuring programming progress by lines of code is

like measuring aircraft building progress by weight.

- Bill Gates

Advantages…OOP’s is Supported by over 100 Programming Languages.

Java is the one of the modern and Best examples of OOP’s.

Other Languages like C++, C# , Python, Visual Basic Support OOP’s.

There is no perfect OOP’s language although Java comes close to perfection .

Complex and Large applications can be Built using OOP’s model.

Well tested and Implemented through decades of Development.

Good Practices and Design Patterns available for use.

Models Real world entities well.

Enables fast application development.

Used in various fields.

Was used to Develop Graphical User Interface for Windows OS.

Object Oriented Databases and Distributed Systems.

Used heavily in Games and AI Systems.

Bottlenecks and

DrawbacksThe problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You

wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

- Joe Armstrong

Bottlenecks and Drawbacks….

Packs too many features that might not always be required.

Requires the model of thinking of the Programmer in tune with the OOP’s Concepts.

Garbage Collection and Memory management becomes a headache if not included in the language. Ex : C++

XKCD Says it better….

Hard to find answers sometimes….

Last But not the least, VB OOP’s features….

Object Oriented features since Visual Basic 4.

User defined data types and their processing with BAS modules.

All the basic OOP’s features including Objects,Classes,Constructors and Destructors and System Objects.

Strong Inheritance features in VB.NET

More VB features : https://msdn.microsoft.com/en-us/library/aa289512(v=vs.71).aspx

Credits :

Wikipedia

Google Images

XKCD

computerhistory.org

Thank You!

Presentation by Gajesh Bhat