Data-Oriented Design for Object-Oriented Programmers - Shachar Langbeheim [ C++ on Sea 2020 ]

There’s intuitive code, and then there’s fast code. Most programmers today are taught Object Oriented Programming. OOP code is defined as interactions between objects, which is the way that human intuition tends to model the world. However, the resulting code isn't structured in a way that considers the actual instructions that a computer will run, and that’s why OOP might suffer performance loss. The more efficient paradigm, Data Oriented Design, pushes the programmers to write code that maximizes speed by removing abstract models and writing code according to how a computer will actually run it. However, DOD code is sometimes viewed as harder to read and less intuitive to people accustomed to OOP. Both paradigms have their place in a programmer’s toolset, but the difficulty of the paradigm shift from OOP to DOD means that not enough programmers add the DOD perspective to their programming toolset. In this talk we’ll demonstrate that transitioning code from OOP to DOD is not necessarily complex, by showing an example of real world OOP-to-DOD code conversion. We’ll take OOP code, and chip away at it, thus showing the design process that allows us to create data-oriented code. ------- A generalist coder, I enjoy being the jack of all languages, rather than an expert in one. I like learning new platforms and languages, and sharing what I learn in various forms, from internal tech-talks to conventions. I'm one of the founders of the MakeGamesJLM video game making community, and work at Lightricks Ltd as a video-rendering engine coder. ------- C++ on Sea is an annual c++ and coding conference, usually held in Folkestone, Kent in the UK. The 2020 conference was moved to a virtual event due to social distancing requirements. Produced and Edited by Digital Medium Ltd: https://events.digital-medium.co.uk Enquiries: [email protected]

Data Oriented Design and Entity Component System Explained - Mathieu Ropert - ACCU 2024
▶︎

Data Oriented Design and Entity Component System Explained - Mathieu Ropert - ACCU 2024

Why and How we fixed std::thread by std::jthread - Nicolai Josuttis [ C++ on Sea 2020 ]
▶︎

Why and How we fixed std::thread by std::jthread - Nicolai Josuttis [ C++ on Sea 2020 ]

Correct by Construction: APIs That Are Easy to Use and Hard to Misuse - Matt Godbolt [ C++ on Sea ]
▶︎

Correct by Construction: APIs That Are Easy to Use and Hard to Misuse - Matt Godbolt [ C++ on Sea ]

BeCPP Symposium 2026 - Herb Sutter - C++ Growing in a world of competition, safety, and AI
▶︎

BeCPP Symposium 2026 - Herb Sutter - C++ Growing in a world of competition, safety, and AI

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains
▶︎

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

Co-Creator of Haskell: Useless vs Useful Languages, Rust vs C, Functional Programming | Simon Jones
▶︎

Co-Creator of Haskell: Useless vs Useful Languages, Rust vs C, Functional Programming | Simon Jones

Building a Data-Oriented Future -  Mike Acton
▶︎

Building a Data-Oriented Future - Mike Acton

CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”
▶︎

CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”

Linus Torvalds: AI Is Changing Linux Fast
▶︎

Linus Torvalds: AI Is Changing Linux Fast

How To Think SO CLEARLY People Assume You're A Genius
▶︎

How To Think SO CLEARLY People Assume You're A Genius

Data-Oriented Design
▶︎

Data-Oriented Design

CppCon 2018: Fedor Pikus “Design for Performance”
▶︎

CppCon 2018: Fedor Pikus “Design for Performance”

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker
▶︎

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker

KEYNOTE: What Everyone Should Know About How Amazing Compilers Are - Matt Godbolt [C++ on Sea 2019]
▶︎

KEYNOTE: What Everyone Should Know About How Amazing Compilers Are - Matt Godbolt [C++ on Sea 2019]

Data-oriented design in practice - Stoyan Nikolov - code::dive 2018
▶︎

Data-oriented design in practice - Stoyan Nikolov - code::dive 2018

Unity at GDC - A Data Oriented Approach to Using Component Systems
▶︎

Unity at GDC - A Data Oriented Approach to Using Component Systems

Modern Architecture 101 for New Engineers & Forgetful Experts - Jerry Nixon - NDC Copenhagen 2025
▶︎

Modern Architecture 101 for New Engineers & Forgetful Experts - Jerry Nixon - NDC Copenhagen 2025

An Engineering Approach to Optimising C++ - Dave Rowland - C++ on Sea 2023
▶︎

An Engineering Approach to Optimising C++ - Dave Rowland - C++ on Sea 2023

CppCon 2014: Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures"
▶︎

CppCon 2014: Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures"

C++ Object Oriented Programming Crash Course - Introduction + Full Tutorial
▶︎

C++ Object Oriented Programming Crash Course - Introduction + Full Tutorial