Data Oriented Programming in Java: Chapter 6 Progress (2025-01-05)

Published: 2025-01-05

Early Access here: Data Oriented Programming in Java

Current Stats:

  • Words: 4022
  • Listings: 12
  • Figures Used: 0
  • Figures Made: 0

This should be a quick one, but I think that at the start of every chapter. I'm recharged after the holiday break. In my head, this is no more than 20 pages. The design was done in chapter 05. That was the hard part. All that's left for this chapter is the implementation.

But that still leaves quite a lot to talk about.

The biggest challenge to far has been deciding what to cut. "Respect the reader" has been some of my favorite writing advice from Saunders. I don't think anyone needs or wants me to explain reduce. The Streams API has been around since Java 8. Ditto that rationale even for bleeding edge stuff like Record Patterns. I trust anyone who reads this book can look up the details.

So, that leaves room for the important stuff. My favorite stuff. The navel gazing stuff. Functions. Semantics. Types. Correctness.

The challenge is how to sneak all that in while keeping things grounded in practical boots-on-the-ground software engineering. Java developers tend to mount defenses when functional programming ideas start getting thrown around (surely from years of being the strawman in every FP talk ("Haha. Look at these object oriented losers," says guy at conference)). Phrases like "referential transparency" come off as annoyingly pompous to many of the people I work with (whose talents far exceed my own). Same for categorizations like "purity". So, instead, I've settled on the more working class description: deterministic. This is the criteria by which we'll decompose the behaviors of model into methods and functions.

When will Chapter 5 be released?

It got caught up in holiday delays and vacations on the Manning side. This was good for me, because I found several errors in the manuscript this week. However, I hear that everyone is back in the office starting next week, so it should be released soon.

Plans for next week:

I hope to have the first draft complete! That's how fast I think this one will go!

(Fast forward two months: "chapter 6 progress update part VII. Welp, still working on it...")