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.

Every glitch reveals a deeper understanding.

Welcome

— I’m Stefan von Stein.

All Posts →

Latest at 2026-09-28:


Classes are Cheap. Object Orientation is Expensive

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.

Read more →


All #ai #architecture #art #clojure #csharp #data-structures #database #datomic #elixir #emacs #fortran #fsharp #functional #gpt #haskell #history #immutability #java #jit #jmm #lambdas #lisp #objects #pioneers #poetry #programming #programming-philosophy #python #randomness #rant #reducers #repl #smalltalk #sql #threads #unix #women