Am I the only one that doesn't think purely data-oriented programming is a particularly good idea?

I mean we're throwing out all the principles that have been established over the last 20 years of OOP like encapsulation and implementation hiding. And you can say what you want about OOP and yes it's not perfect, but there are things that work quite well. Implementation hiding is a perfect example of something that I don't think I just want to give up.

DOP feels like going back to programming C in the 80's with fully procedural functions and completely open structs.

Am I just going mad?

  • 5
    People care too much about things like this. Write your code however you want, rewrite in another way if you have to.

    Problem solved?

    People are completely obsessed with buzzwords like dop/oop/whatever.

    Move on, nobody cares how you wrote your shit as long as it performs.

  • 2
    Data-oriented is great for scalability, since it greatly limits side effects and allows for better auto-optimisations. The reason it's so overused right now is because someone working on huge amounts of data talks about DOP on some conference, and suddenly every attendee thinks they should use it on their small project.

    It's an endless cycle of what's "hot", just ignore it and do whatever fits your use case.
  • 0
    I have been working on a codebase that has some of the most challenging lack of structure. Different coding styles, strange friend function hacks, etc. It has bugs that I cannot believe exist as they fail right away when I create a new project using those libraries. So my goal is to do "better" than the last guy and rewrite problematic code. I have explored different coding paradigms and have found many of those paradigms at odds with the existing code. So, in the end I write clean code and match the approach taken thus far unless it is detrimental.
  • 1
    If you need performance in parallel with safe concurrency and surety, it's the way to go. If you need ease of conceptual understanding, use OOP. DDD is valuable in either.
  • 1
    DOP is just a way of saying "i dont understand functional programming, doesnt my idea of immutable data structures and side effect free code sound super innovative?"
  • 0
    OOP is, in my experience, overkill most of the time. Sure, there are scenarios that are a good fit for solving with OOP but most of the time a set of modules with a well-defined interface, and in these modules mostly pure functions (side effects should be pushed to the boundaries, and then carefully introduced where absolutely beneficial to performance) will be less code to write, and result in a more maintainable codebase.
Add Comment