Data oriented design

wikipedia
https://en.wikipedia.org/wiki/Data-oriented_design "'...OOP is actually about organising source code around data types rather than physically grouping individual fields and arrays in an efficient format for access by specific functions. Moreover, it often hides layout details under abstraction layers, while a data-oriented programmer wants to consider this first and foremost. ...."

attempt 1 into English: OOp organises procedures around structs rather than grouping structs in a format for access by specific functions. Moreover OOP hides layout details under abstraction layers, while a data-oriented programmer wants to consider this first and foremost.

English version 2: Oop is a struct with procedures, which in turn take as their first parameter a pointer to the datatypes(restricted global), rather then placing the procedures outside of the relevant struct or structs. With the procedures inside the struct we refer to this spawning of restricted global as hiding the layout details under an abstraction layer. In data oriented design we have plain procedural programming so that we aren't forced into global state.

English version 3: Oop is a struct with procedures, which in turn take as their first parameter a pointer to the datatypes(restricted global), rather then placing the procedures outside of the relevant struct or structs. With the procedures inside the struct we refer to this spawning of restricted global as hiding the layout details under an abstraction layer. In data oriented design we have plain procedural programming so that we aren't forced into global state.

English version 4: Oop is a struct with procedures, they take as their first parameter a pointer to the datatypes(restricted global), rather then placing the procedures outside of the relevant struct or structs. Data oriented design is plain procedural programming which means that we aren't forced into restricted global state with a struct. The relevant procedures that will take the structs as a parameter do so without being forced to have a pointer to the struct as their first parameter when called.(wanted a banana, got the entire jungle with it).

https://www.youtube.com/watch?v=yy8jQgmhbAU Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2018 — For decades C++ developers have built software around OOP concepts that ultimately failed us - we didn’t see the promises of code reuse, maintenance or simplicity fulfilled, and performance suffers significantly. Data-oriented design can be a better paradigm in fields where C++ is most important - game development, high-performance computing, and real-time systems. The talk will briefly introduce data-oriented design and focus on practical real-world examples of applying DoD where previously OOP constructs were widely employed. Examples will be shown from modern web browsers. They are overwhelmingly written in C++ with OOP - that’s why most of them are slow memory hogs. In the talk I’ll draw parallels between the design of systems in Chrome and their counterparts in the HTML renderer Hummingbird. As we’ll see, Hummingbird is multiple times faster because it ditches OOP for in all performance-critical areas. We will see how real-world C++ OOP systems can be re-designed in a C++ data-oriented way for better performance, scalability, maintainability and testability.

https://www.youtube.com/watch?v=g1TsP60z2OQ For decades C++ developers have built software around OOP concepts that ultimately failed us - we didn’t see the promises of code reuse, maintenance or simplicity fulfilled, and performance suffers significantly. Data-oriented design can be a better paradigm in fields where C++ is most important - game development, high-performance computing, and real-time systems. The talk will briefly introduce data-oriented design and focus on practical real-world examples of applying DoD where previously OOP constructs were widely employed. Examples will be shown from modern web browsers. They are overwhelmingly written in C++ with OOP - that’s why most of them are slow memory hogs. In the talk I’ll draw parallels between the design of systems in Chrome and their counterparts in the HTML renderer Hummingbird. As we’ll see, Hummingbird is multiple times faster because it ditches OOP for in all performance-critical areas. We will see how real-world C++ OOP systems can be re-designed in a C++ data-oriented way for better performance, scalability, maintainability and testability.

links
Oop

http://scottmeyers.blogspot.com/2015/12/good-to-go.html