What is an Object? What is the essence of the object pardigm? How do objects differ from other abstractions? What are their benefits? What are their pitfalls? Can we encode objects with lower building blocks? Should we have objects all the way down?
Some people think they are clever to observe that OOP has no formal, universal definition. Democracy, love and intelligence don’t either. — Tweet from Allain de Boton
Some thoughts:
- Ten Things I Hate About OOP, by. O. Nierstrasz
- A proposal for a simplified, modern definition of OO, by W. Cook
- Object-Oriented Programming vs. Abstract Data Types, by W. Cook
- On Understanding Data Abstraction, Revisited, by W. Cook
- Closures are Objects and The Duality of Objects and Closures
- The Deep Insights of Alan Kay
- The Myths of Object-Orientation, by J. Noble
- Are We There Yet ? – A Deconstruction of Object Oriented Time, by R. Hickey
- Response to “Flaw in Object-Oriented Modelling”
And for the haters:
Object oriented programing had its time and is gone. There is just such a beauty to JSON oriented programming that once you’ve stumbled upon it you’ll never ever would want to go back to object land with its instance-private hell. Hashes, arrays, some functions and a concise syntax for hash and array literals is all most programs will ever need.