Live data from Hacker News

OOP Is Dead, Long Live OOP

gamedev.net

21–30 of 357 posts

Re: OOP Is Dead, Long Live OOP

#21
post #10

Earlier quoted context omitted.

I think this relates to what you're saying. I've never felt any frustration that OOP feels like the wrong tool when I'm using languages that give me the choice to use it or not (like Python, and JavaScript). But when I'm using Java, as one example, it often feels like I'm really locking myself into a design up front. In Python, especially. I'll find myself starting off all experiments or simple projects with function…

But that's the whole point of JAVA. It's an opinionated platform with a hyper-standardized workflow. Sure, that limits creativity, but in many business contexts, the last thing you want is your programmers getting "cute". There's a straight line from requirements to implementation; no meandering involved. At least that's the theory. In practice...

It was a hypothesis, not a theory. Usually a hypothesis is abandoned after so many counter examples.

Re: OOP Is Dead, Long Live OOP

#22

OOP is just a mental model. Deep down everything is made of bits. The church of OOP has failed but if something looks like a duck, walks like a duck and talks like a duck it probably is useful to make a duck class. We're now down to fighting for nuances. You can do most things with OOP or without OOP but each path has some upsides and downsides and most of the time it's good to use some things it provides where it ma…

How has the church of OOP failed? Nearly every used language is based almost entirely on OOP. OOP makes organizing software and code reuse incredibly easy. The only real downsides to OOP is that its arguably slower and has more overhead. But that's only a problem in niche applications (ie. embedded apps).

Re: OOP Is Dead, Long Live OOP

#23

OOP is just a mental model. Deep down everything is made of bits. The church of OOP has failed but if something looks like a duck, walks like a duck and talks like a duck it probably is useful to make a duck class. We're now down to fighting for nuances. You can do most things with OOP or without OOP but each path has some upsides and downsides and most of the time it's good to use some things it provides where it ma…

A specific church of OOP.

OOP the Eiffel, Sather, Smalltalk, C+@, BETA, CLOS, SELF way isn't the same thing as most people learn in school as THE OOP.

Just like there isn't a single way of doing FP or LP.

Also lets not forget that all successful FP/LP languages are actually multi-paradigm and also include OOP concepts.

Re: OOP Is Dead, Long Live OOP

#24

Author needs to actually state what ECS is. From context I don't think he/she is referring to Amazon's Elastic Compute Service.

It's Unity's (the game engine) new Entity-Component-System, the blog post is an answer to this presentation: http://aras-p.info/texts/files/2018Academy%20-%20ECS-DoD.pdf Unity's traditional entity system is suffering from a number of "OOP-isms" which make it hard/impossible to optimize for performance. The new ECS strictly follows a Data-Oriented-Design approach, where everything is built around laying out the data i…

I don't think Entity-Component-System is Unity-specific. From what I recall from other articles, Unity has its own idiosyncratic implementation, but the pattern has several slightly different interpretations.

Re: OOP Is Dead, Long Live OOP

#25

OOP is just a mental model. Deep down everything is made of bits. The church of OOP has failed but if something looks like a duck, walks like a duck and talks like a duck it probably is useful to make a duck class. We're now down to fighting for nuances. You can do most things with OOP or without OOP but each path has some upsides and downsides and most of the time it's good to use some things it provides where it ma…

I think this relates to what you're saying. I've never felt any frustration that OOP feels like the wrong tool when I'm using languages that give me the choice to use it or not (like Python, and JavaScript). But when I'm using Java, as one example, it often feels like I'm really locking myself into a design up front. In Python, especially. I'll find myself starting off all experiments or simple projects with function…

My experience with Python is largely the same. I often start with local variables in a script, then put some parts into functions, then start putting some shared/persistent data into dicts. If after some time a pattern emerges where I think "gee, wouldn't it be useful to pack these three variables that always occur together and interact with each other into a class and use some methods to consistently modify them?". Then I create a class that does some specific thing. This transformation occurs gradually over the development process and the data shapes the design of the application. I would call this process a prototype development. At the end I would have the knowledge about the design where I could start implementing it in Java or C++. But the problem is already solved well enough in Python and you almost never need to take the leap to another programming language.

The program is not good, the design is not well thought out and the implementation is not very clean. It is a design prototype that you use to write the real application. If only there were time for a fresh start. The solution that we have by that point is not perfect but it does three things: Actually solve the problem, solve it good enough for regular usage and it allows further modification with only minor pain.

I wish I could tell the full story but most software stories end before the grand finale.

Re: OOP Is Dead, Long Live OOP

#26
post #10

Earlier quoted context omitted.

I think this relates to what you're saying. I've never felt any frustration that OOP feels like the wrong tool when I'm using languages that give me the choice to use it or not (like Python, and JavaScript). But when I'm using Java, as one example, it often feels like I'm really locking myself into a design up front. In Python, especially. I'll find myself starting off all experiments or simple projects with function…

But that's the whole point of JAVA. It's an opinionated platform with a hyper-standardized workflow. Sure, that limits creativity, but in many business contexts, the last thing you want is your programmers getting "cute". There's a straight line from requirements to implementation; no meandering involved. At least that's the theory. In practice...

https://medium.com/stanford-d-school/want-some-creativity-cr...

It’s interesting - when you begin adding constraints, sometimes it helps solve the problem. You can’t be creative unless you’ve created a solution. It would be interesting to see the impact on this with programming languages.

Re: OOP Is Dead, Long Live OOP

#27

OOP is just a mental model. Deep down everything is made of bits. The church of OOP has failed but if something looks like a duck, walks like a duck and talks like a duck it probably is useful to make a duck class. We're now down to fighting for nuances. You can do most things with OOP or without OOP but each path has some upsides and downsides and most of the time it's good to use some things it provides where it ma…

> OOP is just a mental model. Deep down everything is made of bits. The church of OOP has failed but if something looks like a duck, walks like a duck and talks like a duck it probably is useful to make a duck class. We're now down to fighting for nuances. No... I think this is missing precisely what was exactly the point of the article (see "(B)" in the text). This post is not a fight over OOP religion. The point of…

Just because prior literature exists, does not mean it should not be superseded. For example, generics wasn't even a thing when OOP originally started and yet LINQ and basic list ADT's wouldn't be as powerful without it.

Re: OOP Is Dead, Long Live OOP

#28

Author needs to actually state what ECS is. From context I don't think he/she is referring to Amazon's Elastic Compute Service.

It's Unity's (the game engine) new Entity-Component-System, the blog post is an answer to this presentation: http://aras-p.info/texts/files/2018Academy%20-%20ECS-DoD.pdf Unity's traditional entity system is suffering from a number of "OOP-isms" which make it hard/impossible to optimize for performance. The new ECS strictly follows a Data-Oriented-Design approach, where everything is built around laying out the data i…

> the blog post is an answer to this presentation:

... which had some discussion earlier [1] and the top comment on that submission links to the article of this submission.

[1] https://news.ycombinator.com/item?id=18202308

Re: OOP Is Dead, Long Live OOP

#29

OOP is just a mental model. Deep down everything is made of bits. The church of OOP has failed but if something looks like a duck, walks like a duck and talks like a duck it probably is useful to make a duck class. We're now down to fighting for nuances. You can do most things with OOP or without OOP but each path has some upsides and downsides and most of the time it's good to use some things it provides where it ma…

>The great architect has the foresight on how the code will be used in five years and design it accordingly.

Isn't he better off taking that crystal ball that gives him the foresight, using it to pick the correct lottery numbers and simply retiring?

Re: OOP Is Dead, Long Live OOP

#30
To be fair it was in the late ‘90s - early ‘00s a very clean way to make communication work among teams, at a time still deeply into the non-internet era and C or Fortran oriented.
Post reply on HN