Compendium are topical resources intended to be kept up to date instead of a stream-of-consciousness of notes.
Object Oriented Programming
Object Oriented Programming is really two different ideas: message-passing and compile-time hierarchies. The former informs modern distributed systems and the latter is the basis of popular mordern programming architectures. Problem Small-talk / Message Passing Lineage Modern / Compile-Time Lineage Encourages everything to be solved with … Message passing Classes Integrating two existing pieces of code Proxy Objects, Dynamic Dispatch Adapters Extending code without modifying original code … Delegation Inheritance Calling a method implementation is … Asynchronous and knowable only at runtime Synchronous and compile-time known Iterating on Program Development by … Updating one object at a time while preserving state, Limited type checking Compile-time, Static type checking, Update full program by reseting state While both are technically about objects, one focuses on using mechnanisms of messages to solve problems, while the other focuses on using classes and inheritance to solve problems. ...