front matter


Every programming principle, every design method, every architecture style, and even most language features are about organizing complexity while allowing adaptation. Two characteristics—immutable data and turning parts of the program into data inside the program itself—drew me to Clojure in 2009 and more recently to Yehonathan Sharvit’s Data-Oriented Programming.

In 2005, I worked on one of my favorite projects with some of my favorite people. It was a Java project, but we did two things that were not common practice in the Java world at that time. First, we made our core data values immutable. It wasn’t easy but it worked extraordinarily well. We hand-rolled clone and deepClone methods in many classes. The payoff ...

Get Data-Oriented Programming now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.