Hacker News with Generative AI: Object-Oriented Programming

Getter-Setter Pattern Considered Harmful (wolfgang-ziegler.com)
Many developers (like myself) who started their careers with OOP (Java, C#, ...) during the last decades will look at this code and find nothing wrong about it at first sight.
Inheritance and Subtyping (frankel.ch)
Java is the first language I learned in my career. Its structure is foundational in my early years of understanding programming concepts. After going through several other languages with very different approaches, I’ve widened my point of view. Today, I want to reflect on the idea of inheritance.
Better Know a Ruby Thing: Singleton Classes (noelrappin.com)
It is time to Better Know what is perhaps the Ruby-iest of Ruby things, a feature that didn’t even have an official name for several years, despite being critical to Ruby’s Object-Oriented semantics. (It only just now occurs to me that there was no official name in English, I wonder what the Japanese name for it was…).
Enigma Cipher Machine: An Object Oriented Python Implementation (christopherchmielewski.xyz)
This program is an objected oriented implementation of the Enigma cipher machine written in Python.
Open Dylan (opendylan.org)
Dylan is an object-functional language originally created by Apple for the Newton.
Pharo (pharo.org)
Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one).
Thinking in Actors – Part 3 – Using the Actor Model to Track Aircraft (jeremycarterau.substack.com)
Previously we outlined the three pillars of the virtual actor: Ownership, Lifecycle and Transaction. I also briefly introduced a few techniques we can use to help us model our actors. Now, we will put it all together and model a system that allows us to track aircraft in real-time.
Issues with object-oriented programming in Guile (2022) (dthompson.us)
Scheme is often thought of as a functional programming language, but really it is a multi-paradigm language, including object-oriented programming.
Implementing a simple object system from scratch in Ruby (metacircu1ar.github.io)
“What I cannot create, I do not understand.” – Richard Feynman
Exploring PHP Lazy Objects: A Practical Implementation (dailyrefactor.com)
One of the new features in PHP 8.4 is Lazy Objects, which are part of the PHP OOP model.
A C++ Mixin System (jennyjams.net)
I've had this idea in the back of my head for a while of pervasively using mixins to add code and logic for more high level concepts, although this gets somewhat close to Rust style traits (and C++ concepts). This has existed in the back of my head for a long time as a way to model a framework or standard library implementaiton while also providing it for user types.
99 Bottles of OOP now available in Python (sandimetz.com)
99 Bottles of OOP is a practical guide to writing cost-effective, maintainable, and pleasing object-oriented code.
OOP is not that bad (osa1.net)
OOP is certainly not my favorite paradigm, but I think mainstream statically-typed OOP does a few things right that are very important for programming with many people, over long periods of time.
Beyond Procedure Calls as Component Glue: Connectors Deserve Metaclass Status (dl.acm.org)
We present the architecture-oriented programming language Objective-S, which goes beyond procedure calls for expressing inter-component connectors (so-called glue code) in order to directly express a wide range of architectural patterns directly in the implementation.
Medley Loops: The Basic System (Lisp Object-Oriented Programming System) [pdf] (interlisp.org)
Alan Kay 80s 2h 40M OOP Talk Remastered [video] (youtube.com)
Benchmarking the CLOS (djhaskin.com)
Python Data Model (python.org)
Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects. (In a sense, and in conformance to Von Neumann’s model of a “stored program computer”, code is also represented by objects.)
Linearizability: A correctness condition for concurrent objects (blogspot.com)
Bootstrap post-collapse OOP technology (Part 1) (marianoguerra.org)
Keynote Speech to the 1996 Oopsla Convention (patternlanguage.com)
When objects are not enough (2021) (tonysm.com)
Finalizers, Guardians, Phantom References (wingolog.org)
Reflection: Smalltalk's Most Enduring Idea? By Bryan Foote (2017) (youtube.com)
What to do if you don't want a default constructor? (sandordargo.com)
Behavior Inheritance in Rust (2021) (wordpress.com)
Deriving Dependently-Typed OOP from First Principles (arxiv.org)
Generalizing Support for Functional OOP in R (r-project.org)
Learning from the Object Oriented Mania (lemire.me)
Learning from the object-oriented mania (lemire.me)