A confluence of code, chronicles, and my thoughts.
Explore functional programming in Java, Clojure, and F#.
Delve into the history and uncover the stories that shape our craft.
An object can have private fields and still be changed by code that never calls its methods. Classes make object orientation easy to adopt and surprisingly expensive to live with.
AI can generate classes faster than we can tell whether their objects still own their representation.
The Five Pillars
Object orientation is often explained through five pillars, usually classes, inheritance, abstraction, encapsulation, and polymorphism.
Classes and inheritance are ways to implement and organize a program. Abstraction belongs to all programming, and polymorphism takes many forms. The form relevant here is dynamic single dispatch. A message is addressed to one identifiable object, which decides at runtime how to respond.