proj-plbook-plChOop

Table of Contents for Programming Languages: a survey

Chapter : OOP

"The core idea of OOP is that of dynamic dispatch — which code is invoked by a function call is decided at runtime (late binding). This is a powerful pattern which allows for flexible and extensible system. The problem is, extensibility is costly! "

"We had two ideas, really. One of them we got from Lisp: late binding (..If you’re using early-binding languages as most people do, rather than late-binding languages, then you really start getting locked in to stuff that you’ve already done. You can’t reformulate things that easily...). The other one was the idea of objects." -- Alan Kay, http://queue.acm.org/detail.cfm?id=1039523

"Then, my thesis supervisor said "But you're wrong, Erlang is extremely object oriented". He said object oriented languages aren't object oriented. I might think, though I'm not quite sure if I believe this or not, but Erlang might be the only object oriented language because the 3 tenets of object oriented programming are that it's based on message passing, that you have isolation between objects and have polymorphism. " -- https://news.ycombinator.com/item?id=19716258

" 1) The term "object-oriented" was known and used throughout the sixties and seventies in various domains, such as developmental psychology, library and information science, and systems engineering.

2) The term was also used in computer science, at least since 1971, e.g. applied to database systems, operating systems, structured exception handling and structured analysis; see e.g. https://archive.org/details/databasesystems0000cour.

3) The term "object-oriented" was applied to a programming language for the first time in the MIT CSG Memo 137 (April 1976) by Anita K. Jones and Barbara H. Liskov; a similar text was published in the IEEE Transactions on Software Engineering later in the year (see see https://ieeexplore.ieee.org/document/1702384).

"If you want to have a look at the references and discussions yourself, see the comments here and on Reddit: https://old.reddit.com/r/ProgrammingLanguages/comments/156ng13/which_cs_publication_used_term_objectoriented_for -- https://news.ycombinator.com/item?id=36879311

TODO: copy in other defns of oop from ootOopNotes*.txt

Philosophical connections

Classes vs. PrototypesSome Philosophical and Historical Observations