Back in 1980, I started programming in HP-Basic and later wrote quite a lot of Z-80 Assembly code. Then I progressed to Pascal and Modula-2. C++ looked too scary but later Delphi made life much easier. Yet it was Java that finally made me grasp the concept of Object Oriented Programming. I wonder how this OOP-thing all started? What was actually the first Object Oriented programming language?
First of all, OOP is a programming style and can be done in any language (*1). Thus, as so often when it's about looking for a 'first' , the answer will depend entirely on your definition of OOP, on which features and how they are expressed, are essential for making an OOP language, in your opinion.
A rough timeline of candidates:
Historically the concept of objects with specific properties and relations was already discussed in the 1950s.
LISP (first implemented in 1958) might have been the first language supporting arbitrary complex data objects with language specific tools.
ALGOL variants throughout the 1960s introduced as well complex data structures including attempts to associate these with dedicated code (methods).
Simula, originally designed in 1960 as a simulator for electronic components, added with their Simula 67 version next to all features we do today associate with OOP (Classes, Subclasses, Methods, Inheritance, etc.) and maybe most important named them that way (ok, Methods were called Procedures - after all, it was an ALGOL child).
Finally Smalltalk came along in the mid 1972. While having again a specific, a LISP like notation, it's main influence was by proving that object orientation can be applied to many common tasks in application (and OS) design, helping a lot to keep complex structures in check.
After that, next to all languages (Ada, BASIC, COBOL, ...) became 'objectified' - with C++ eventually being the worst bastardization of all.
Bottom line: Look at the list and pic the point in time you would agree that OOP was invented :))
*1 -Yes, that includes EXPLICIT Assembler as well.
What we now refer to as “object-oriented programming” was pioneered by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Centre in the 1960s, when they developed the language Simula. However, their original design in 1962 would have consisted of a network of tasks and "customers" to service them. Their original intent was to implement their language as a pre-processor or transpiler for Algol-60. By 1964, they had realized that both the tasks and the customers could be active, and that their language needed its own compiler, not to be implemented on top of Algol.
What we now call an “object” was added to the language in December of 1966, and originally called “prefixing,” with what we’d now consider the base class called the “prefix area.” The designers were still thinking in terms of using Simula to model simulations, with the classes representing processes, although Simula was now intended to be a general-purpose programming language. This design picked up the name “Class and Subclass Declarations” within a few months, with a paper by that name published in May of 1967.
The term “Object-Oriented” was originally coined by Alan Kay to describe his language Smalltalk. Some sources date the first published appearance of it to 1973, but Kay recalls coming up with the term “probably in 1967,” which would be almost immediately after Simula’s creators published the idea of classes and subclasses. He would later say,
OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.
However, this is not what the term has come to mean.
Slightly different but perhaps of interest: in 1988/89 I did some work with the X-Windows Motif framework - which I came to realize was an OO framework implemented in C, not unlike the C code emitted by early C++ “precompilers”. I’ve always wondered what (if any) kind of cross-pollination of ideas led to this.