This document discusses data-oriented programming (DOP) in Java. DOP focuses on separating data and code to decrease complexity compared to object-oriented programming (OOP). The document explains how OOP can increase complexity, the principles of DOP including separating immutable data from code, and ways to implement DOP in Java, such as using immutable classes annotated with @value or Java records to represent data entities independently of code.