Data Oriented Programming in Java is now available for Early Access

You can grab a copy here! Use the promo code mlkiehl to get 50% off. (Valid through October 9th).

Data Oriented Programming in Java is the culmination of everything I know about how to write effective software (so far). It's a book about data modeling and how small design choices can have outsized impacts on the codebase. The right data representation reshapes and simplifies our programs. We'll explore how to model a domain using Java's Algebraic Data Types, and how to wield the type system as a tool for enforcing correctness and eliminating bugs. Programs that are built around well modeled, statically typed data tend to be simpler, safer, and, most importantly, easier to understand.

That's my super quick elevator pitch. Checkout the announcements on Hacker News and Reddit. Each spawned a lot of interesting discussion about data-oriented programming.

There's also a companion repository for the book on Github. I spent a lot of time trying to make sure it had enough context to stand on its own even if you don't buy the book. So, in addition to covering all of the listings in the book, it has its own narrative and annotations that explains why we're doing things the way we are and what problems we're trying to solve. I hope you check it out! If you find the ideas in the codebase compelling, you'll probably enjoy the book, too.