Live data from Hacker News

The Big OOPs: Anatomy of a Thirty-Five Year Mistake

computerenhance.com

41–50 of 193 posts

Re: The Big OOPs: Anatomy of a Thirty-Five Year Mistake

#41
post #19
post #2

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 significan…

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.

> 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

#42
post #4
post #3

The presentation was recently discussed at: https://news.ycombinator.com/item?id=44596554 [video] (37 comments) This current posted link is an article by Casey Muratori with supplementary material on topics to explore further. - Early History of Smalltalk - History of C++ - Development of the Simula Languages - Origins of the APT Language for Automatically Programmed Tools

And here: https://news.ycombinator.com/item?id=44603205

Ok, meanwhile the admins seem to have combined all the comments here, so the link now points to an empty post; and I made this comment a few days (not four hours) ago.

So just ignore it.

Re: The Big OOPs: Anatomy of a Thirty-Five Year Mistake

#43

Can someone point to a real life example or tutorial/guide of the ECS architecture he proposes? I'd like to learn more about how to implement this.

They’re very common in video game programming and visual effects and uncommon elsewhere. I enjoyed this article, though it’s still about using ECS in a simulation / computer graphics context.

https://adventures.michaelfbryan.com/posts/ecs-outside-of-ga...

Re: The Big OOPs: Anatomy of a Thirty-Five Year Mistake

#44
post #21

Earlier quoted context omitted.

Is it fair to blame all of OOP for C++?

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.

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

#45
post #5

Any way to find out what the 35 year mistake was without being "engaged" for hours on that video?

Stroustrup took out object hierarchy introspection feature that was available before, which turned out to be a pretty handy feature that people kept trying to reimplement.

Re: The Big OOPs: Anatomy of a Thirty-Five Year Mistake

#46

Earlier quoted context omitted.

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.

at least python gives the flexibility to opt out of OOP, whereas in java, literally everything is an Object

that's why i said "to a certain extent" for python!!

Re: The Big OOPs: Anatomy of a Thirty-Five Year Mistake

#47
post #17
post #13

Earlier quoted context omitted.

No help. It's video speed. I can read at several thousand words a minute. So I need the whole transcript in one shot. Then I can read it in 10 or 15 minutes or so, and decide if it's worth watching a 2 hour plus video. The answer is almost always "no".

Not the closed caption button. In the bottom of the description there is "show transcript" which gives a scrollable transcript.

He’s too busy reading thousands of words a minute to actually understand any of them.

Re: The Big OOPs: Anatomy of a Thirty-Five Year Mistake

#48

Can someone point to a real life example or tutorial/guide of the ECS architecture he proposes? I'd like to learn more about how to implement this.

The two biggest for-sale engines have their implementations as well as what others have posted.

Unity ECS (has a pretty good general introduction to ECS) https://docs.unity3d.com/Packages/com.unity.entities@1.3/man...

Unreal https://dev.epicgames.com/documentation/en-us/unreal-engine/...

Re: The Big OOPs: Anatomy of a Thirty-Five Year Mistake

#49

And on the other end of the spectrum, you have the proponents of Domain-driven design (DDD)[0], where they use an ML descended language such as F# and the aim is to make invalid states unrepresentable by the program [1] [0] https://fsharpforfunandprofit.com/ddd/ [1] Make invalid states unrepresentable: https://geeklaunch.io/blog/make-invalid-states-unrepresentab...

There is a good book on DDD in F#, Domain Modelling Made Functional

Is there a similar recommended book using ML/OCaml or some other language of the family? i am hesitant to learn F#, knowing Microsoft's tendencies.

Re: The Big OOPs: Anatomy of a Thirty-Five Year Mistake

#50
post #10
post #7

Earlier quoted context omitted.

OOPs = "object-oriented programming", BUT it's a more restrained and thoughtful complaint than just "objects suck" or "inheritance sucks". He cabins it pretty clearly at 11:00 minutes in: "compile-time hierarchy of encapsulation that matches the domain model was a mistake"

To unpack that a little, he looks to the writings of the early developers of object oriented programming and identifies the ways this assumption became established. People like Bjarne Stroustrup (developer of C++) took on and promulgated the view that the inheritance hierarchy of classes in an object oriented system can be or should be a literal instantiation of the types of objects from the domain model (e.g. differ…

> This is a mistake is because

https://news.ycombinator.com/item?id=44638183

Post reply on HN