Komentáře •

  • @Tony-dp1rl
    @Tony-dp1rl Před 8 měsíci +8

    I am 3 chapters into his book ... good read so far. I can't help but think everything I have read so far is identical to how we built software in C last century though. I am sure that feeling will disappear as I read on past what seems to be the "undoing" of OOP part of the book.

    • @tenthlegionstudios1343
      @tenthlegionstudios1343 Před 8 měsíci +1

      The creator of Zig has been adopting Data Oriented Design - and it is still seen in the gaming industry (Mike Action's famous talk and he writes C++ like C98). Seems like when you care about systems programming performance and memory, data oriented design seems to emerge. Although what is interesting to me, is this comes from someone in the Clojure community.

  • @amirghorbanian1300
    @amirghorbanian1300 Před 7 měsíci +1

    OMG , I used DoD and I didn't realize it :) in terms of tools I use Ajv to validate my input JSON . which makes my code static on runtime and dynamic on compile , I even can define the exact format of string like ip v4 email .

  • @danielbarnes3406
    @danielbarnes3406 Před 7 měsíci +1

    Love this book. I've read it a couple times and some passages more than that.

  • @perghosh8135
    @perghosh8135 Před 8 měsíci +1

    More should listen to Yehonathan Sharvit, very few developers is talking about "data oriented design" and that is really sad. I think the main reason why so few talk about it is that takes some time to learn and you should know how the hardware works.
    With that said, it is possible to take this type of development very far with C/C++. C/C++ differ a lot from other types of languages because C/C++ is basically assembler without coding assembler. You have maximum freedom. That means that the developer are able to more logic around data to make it "smart" compared to other languages. Invested time in making smart code can be reused. Making cache friendly code, take advantage of SIMD and threads. It is hard but this "smart" code and you can throw away huge amounts of code that it replaces.

    • @neko6
      @neko6 Před 8 měsíci

      Isn't adding logic around data the basic premise of OOP?
      Does C/C++ allow more of this than, say, Java, Python, or nodeJS?

    • @perghosh8135
      @perghosh8135 Před 7 měsíci

      @@neko6 About C++ so yes, a lot more. Java, Python etc is not even close.
      C++ differ a lot compare to other languages because C++ is like assembler without writing assembler. In C++ you build logic used by other languages.
      "data" is a very general word, what is not data?
      When you talk about data oriented programming, a better word might be "cpu oriented programming". You build logic around data patterns that works well for the cpu.
      Mostly done by developers with very high demands on speed, there you are forced to adapt but also good to simplify and reuse even if the actual solution may be harder to read, just that it is more flexible and smaller in code size.
      OOP is not optimal in any way for cpu to work with data, CPU want data in long trains, in sequence.

  • @ZapOKill
    @ZapOKill Před 8 měsíci +1

    Sry, but since he mentioned it 3 times I have to throw it in... Closure/Hickey was (by far) not the first to come up with immutable DS.

    • @bariole
      @bariole Před 7 měsíci +3

      He was not the first prophet of immutable DS. But Hickey's solution included combination of persistent collections and a language with specialized copy semantics to make immutable DS actually performant enough to be usable.