News for hackers. Stuff that matters.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by Rochus on Friday July 18, 2025 @12:47PM (#44606903)
Entertaining. The presenter obviously doesn't like the class hierarchy to correspond to the domain model. He seems to think that this was an essential feature of OOP, supported by some quotations by Smalltalk exponents. But not even the Smalltalk world could agree on what OOP actually is (just compare the statements by Kay with the actual architecture of Smalltalk-76ff) and as quickly as Smalltalk lost its significance, there is no need to mention it further. I would rather look at a reputable industry organization such as IEEE, which even publishes its own standards and best practices, what OOP is about. E.g. the OOP Milestone (see https://ethw.org/Milestones:Object-Oriented_Programming,_196...) which names Simula 67 the first OO language, specifies OO as "the combination of three main features: 1) encapsulation of data and code 2) inheritance and late binding 3) dynamic object generation." No mention of the class hierarchy should correspond to the domain model. So maybe we should just not mix up a programming paradigm with how it is used by some folks in practice? The fact that the loudest proponents of a paradigm are not usually those who apply it in practice remains true even today. Takes far less than 2.5 hours to state.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by asa400 on Wednesday July 23, 2025 @06:29PM (#44664700)
He literally gives extensive primary source citations to show that the originators of OOP presented this class-domain correspondence as the correct way to think about and do OOP. Bjarne Stroustrup is not just some random guy.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by Rochus on Wednesday July 23, 2025 @07:36PM (#44665223)
> He literally gives extensive primary source citations to show that the originators of OOP presented this class-domain correspondence

In case of Dahl/Nygaard it seems logical since their work focus was on simulation. Simula I was mostly a language suited to build discrete-event simulations. Simula 67, which introduced the main features we subsume under "Object-Orientation" today, was conceived as a general-purpose language, but still Dahl and Nygaard mostly used it for building simulations. It would be wrong to conclude that they recommended a class-domain correspondence for the general case.

> Bjarne Stroustrup is not just some random guy

Sure, but he was a Simula user himself for distributed systems simulation during his PhD research at Cambridge University. And he learned Simula during his undergraduate education at Aarhus, where he also took lectures with Nygaard (a simulation guy as well). So also here, not surprising that he used examples with class-domain correspondence. But there was also a slide in the talk where Stroustrup explicitly stated that there are other valid uses of OO than using it for modeling domains.

Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by t420mom on Wednesday July 23, 2025 @06:44PM (#44664807)
Is it fair to blame all of OOP for C++?
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by throwawaymaths on Wednesday July 23, 2025 @07:22PM (#44665098)
yes, because java and c# (and others, python to a certain extent) basically copied it. even ruby, which at its core is about "message passing" sure does a hell of a lot to hide that and make it feel c++ ish. i would bet at least 25% of ruby practitioners arent aware that message passing is happening.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by JohnMakin on Wednesday July 23, 2025 @07:56PM (#44665370)
at least python gives the flexibility to opt out of OOP, whereas in java, literally everything is an Object
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by throwawaymaths on Wednesday July 23, 2025 @08:00PM (#44665399)
that's why i said "to a certain extent" for python!!
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by Spivak on Wednesday July 23, 2025 @09:58PM (#44666072)
What do you mean by this? Because everything in Python is object, even classes and functions are objects.

Do you just mean that Python lets you write functions not as part of a class? Because yeah there's the public static void main meme but static functions attached to a class is basically equivalent to Python free functions being attached to a module object.

Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by lisbbb on Wednesday July 23, 2025 @11:55PM (#44666741)
OOP is not shoved down your throat with Python, though. With Python, I can choose what taxonomies deserve an OOP treatment and which do not. Spoiler: Almost nothing is a taxonomy of any remarkable nature.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by JohnMakin on Thursday July 24, 2025 @12:59AM (#44667110)
you also can get away with completely ignoring the underlying oop semantics in tons of cases whereas java and similar languages dont give you that option
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by fc417fc802 on Wednesday July 23, 2025 @11:39PM (#44666643)
If I call something a function does that mean I'm "doing functional programming" any time I use it?

I use both C++ and Python but I wouldn't describe any of what I write as "object oriented".

Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by lisbbb on Wednesday July 23, 2025 @11:55PM (#44666742)
No. Functional programming is quite a bit more involved than just writing "functions"--it is taking advantage of the fact that functions are first-class "objects" that can be passed as arguments to other functions, which allows for a far more intuitive and flexible form of programming. But FP is even more than that.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by epr on Wednesday July 23, 2025 @10:03PM (#44666095)
Everything is an object in Python as well
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by lisbbb on Wednesday July 23, 2025 @11:53PM (#44666731)
The main issue I have with Java is that the JVM was built to be portable and then we got a superior kind of portability using containers, which makes the JVM totally redundant and yet whenever I point that out, I get funny looks from people!

I guess I have a lot of other problems with Java--jar hell, of course, but also the total inability for corporations to update their junk to newer versions of Java because so many libraries and products were never kept up with and then you get security people breathing down your neck to update the JVM which was LITERALLY IMPOSSIBLE in at least two situations I became involved with. We even tried to take over 3rd party libraries and rewrite/update them and ended up at very expensive dead ends with those efforts. Then, to top it all off, being accused of lacking the skill and experience to fix the problem! Those a-holes had no idea what THEY were talking about. But in corporate America, making intelligent and well-documented arguments is nothing. That's when I finally decided I needed to just stop working on anything related to Java entirely. So after about 15 years of that crap, I said no more. But I'm the under-skilled one.

Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by pjmlp on Thursday July 24, 2025 @04:00AM (#44668182)
So redundant that the WASM folks are redoing application servers using kubernetes with WASM containers.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by imtringued on Thursday July 24, 2025 @10:11AM (#44670923)
You do realize that it's time to sunset a codebase if you can't find anyone to maintain it, right? "LITERALLY IMPOSSIBLE" means the code is dead. It's worthless garbage dragging the company down. There is no nothing else to do except shut it down. Software written in the last century isn't something like an irreplaceable artifact from an ancient technologically superior civilization that can never be replicated.

If humanity's technological progress depended on impossibly rare events that never happen again, then humanity would miss the vast majority of them. It would be as if those events never existed in the first place.

Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by JohnMakin on Thursday July 24, 2025 @08:36PM (#44678090)
you realize the person you’re responding to didnt make this decision on what to use in their stack at all and this is likely what eventually happened anyway?
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by pjmlp on Thursday July 24, 2025 @03:59AM (#44668179)
In Python everything is an object as well, unless you are still using Python 1.x, or the legacy mode in Python 2.x.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by robertlagrant on Thursday July 24, 2025 @07:47AM (#44669556)
Literally everything is not an object - to whit: literals. And other things that weren't in your sentence.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by mrkeen on Thursday July 24, 2025 @10:25AM (#44671105)
If only! Java gives you just enough non-objects to make pass-by-value or pass-by-reference something you need to be aware of, likewise with == and equals.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by anp on Wednesday July 23, 2025 @07:18PM (#44665072)
Maybe not fair, but it’s pretty normal for people to assess paradigms based on their most popular implementations.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by lisbbb on Wednesday July 23, 2025 @11:47PM (#44666702)
I don't hate C++ as much as I hate Java, though. That probably has more to do wit the time I was working with C++ and the kinds of projects versus the mind-numbing corporate back-end garbage I worked on with Java.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by igouy on Thursday July 24, 2025 @08:11PM (#44677904)
The source citations are facts. We can check that The Early History of Smalltalk shows this on page 82:

"Unfortunately, inheritance — though an incredibly powerful technique — has turned out to be very difficult for novices (and even professionals) to deal with."

Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by igouy on Monday July 28, 2025 @03:09PM (#44714286)
Stroustrup's starting-point (page 13) is abstract-data-types not a compile-time-hierarchy —

"Consider defining a type 'shape' for use in a graphics system. Assume for the moment that the system has to support circles, triangles, and squares. Assume also that you have some classes … You might define a shape like this … This is a mess. …"

Then —

"The problem is that there is no distinction between the general properties of any shape … and the properties of a specific shape … The ability to express this distinction and take advantage of it defines object-oriented programming. …

The programming paradigm is: Decide which classes you want; provide a full set of operations for each class; make commonlity explicit by using inheritance. …

Where there is no such commonality, data abstraction suffices."

Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by dimal on Wednesday July 23, 2025 @07:13PM (#44665029)
Did you actually watch it? He talks A LOT more about Simula and C++ than Smalltalk. He goes back to the original sources: Kristen Nygaard and Bjarne Stroustrup. Seems odd to focus on Smalltalk when that’s not what the talk was about.
Re:The Big OOPs: Anatomy of a Thirty-Five Year Mistake by phendrenad2 on Wednesday July 23, 2025 @10:17PM (#44666180)
It's funny because I read this comment and then watched the video, and it's like the first 15 minutes of the talk are dedicated to debunking this exact comment. Freaky.