> Markdown version of [/events/world-congress-2025/sessions/700-data-oriented](https://www.wearedevelopers.com/events/world-congress-2025/sessions/700-data-oriented). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Data-Oriented Programming - Version 1.1 - **Date:** Thursday, Jul 10, 2025 - **Time:** 17:30–18:00 (30 min) - **Room:** Stage 8 - **Event:** World Congress 2025 - **Tags:** design patterns, java ## Recording [Watch recording](https://www.wearedevelopers.com/videos/1634-data-oriented-programming-version-1-1) ## Description In data-oriented programming (DOP), we model data as data and polymorphic behavior with pattern matching. This talk will introduce the concept of DOP and its four principles: * model data immutably and transparently * model the data, the whole data, and nothing but the data * make illegal states unrepresentable * separate operations from data We'll also explore how to use pattern matching as a safe, powerful, and maintainable mechanism for ad-hoc polymorphism on such data that lets us define operations without overloading the types with functionality. The talk ends with a juxtaposition to OOP, so you not only learn how to employ DOP but also when (not). ## Speaker ### [Nicolai Parlog](https://www.wearedevelopers.com/@nicolai-parlog) Java Developer Advocate ## Related talks at this congress - [Modern Java 25](https://www.wearedevelopers.com/events/world-congress-2025/sessions/562-modern-java-25) — Ron Veen - [Modern Software Development – DORA all the way, or what?](https://www.wearedevelopers.com/events/world-congress-2025/sessions/826-modern-software) — Thomas Much - [Functional Programming in C++](https://www.wearedevelopers.com/events/world-congress-2025/sessions/776-functional) — Jonathan Müller - [20 Years of Domain-Driven Design: What I’ve Learned About DDD](https://www.wearedevelopers.com/events/world-congress-2025/sessions/886-20-years-of-domain) — Eberhard Wolff