https://www.cs.cmu.edu/~charlie/courses/15-214/2014-fall/slides/25-history-oo.pdf
- essense of objects is (dynamic) dispatch
- dispatch provides interoperability
- first-class interoperability is critical to frameworks and ecosystems
- frameworks and ecosystems are economically critical to the software industry
- likely a significant factor in objects' success
- Also talks about early mistakes in Simula
http://www.cs.cmu.edu/~aldrich/papers/objects-essay.pdf
- Cook's definition: "An Object is a value exporting a procedural interface to data or behavior
http://bibliography.selflanguage.org/_static/self-power.pdf
- real-world vs computers: can make sweeping changes by changing shared behavior in computers
http://bibliography.selflanguage.org/_static/organizing-programs.pdf
https://www.lua.org/pil/16.1.html
https://aaditmshah.github.io/why-prototypal-inheritance-matters/
https://alistapart.com/article/prototypal-object-oriented-programming-using-javascript/
- rocking chair = prototype of chair + 2 rockers
- no blueprint needed
http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition/
https://crockford.com/javascript/prototypal.html
- Crockford "invents" Object.create
- never included in the language originally
- original JS: new f() produces a new object that inherits from f.prototype
- never included in the language originally