What Object-Oriented Programming Was Supposed to Be: Two Grumpy Old Guys’ Take on ...
summary
Argues that mainstream OO has traded away modeling for reuse, citing Simula’s modeling roots and Beta’s features as alternatives; shows concrete problems like the stack inherits from vector anti-pattern, fragile implementation inheritance, default-virtual methods forcing unclear override contracts and broken subclass invariants, and the UML/text mismatch where diagrams drift from code; recommends teaching and building languages/tools that make modeling primary, e.g. active objects, classification hierarchies, and text-diagram one-to-one sync so programs describe domain models directly.
AI-written summary · about
chapters (26)
- 0:00Intro
- 0:17OBJECT-ORIENTED PROGRAMMING
- 1:29AND MORE PROFOUND CRITIQUE
- 5:26THE MAINSTREAM INTERPRETATION OF OOP
- 6:22REUSE CONSIDERED THE MAIN ADVANTAGE OF OOP
- 9:40PROBLEMS WITH IMPLEMENTATION INHERITANCE
- 10:18THE BENEFIT OF MODELING
- 10:44ISSUE: VIRTUAL AND NON-VIRTUAL METHODS
- 11:04FLEXIBILITY VERSUS SUBCLASS INTERFACE
- 11:42VIRTUALS TO REPLACE NAME PARAMETERS AND FORMAL PROCEDURES
- 12:39PRINCIPLES FOR VIRTUAL METHODS
- 13:56MODELING CONCURRENT PROCESSES
- 14:44Programming is modeling
- 15:03HOW TO APPROACH MODELING
- 15:23PROGRAMMING AS MODELING
- 15:56The program execution is the model
- 17:24The Car object is a model of the Mini
- 17:42PHENOMENA
- 18:47CONCEPTUAL MEANS
- 19:16CONCEPTS AND CLASSIFICATION
- 20:27REPRESENTATION OF CONCEPTS
- 20:59MULTIPLE INHERITANCE AND CLASSIFICATION
- 22:11SEVERAL CLASSIFICATION HIERARCHIES
- 24:56TEXT VERSUS DIAGRAMS
- 26:12SUMMARY
- 34:17MJØLNER BETA TOOL: TEXT VIEW AND DIAGRAM VIEW
related talks
01h 00mBack to Basics: Object-Oriented Programming
44mObject-Disoriented
58mOO Considered Harmful
32mThe Evolution of Object-Oriented Programming
58m#OOP vs Data Oriented Programming Which One to Choose
33mPrototypes: Object-Orientation, Functionally
27mObject Oriented Programming Best Practices
25mOOPs!... I Did it Again: When Good Objects Go Toxic
