Jump to ratings and reviews
Rate this book

Data-Oriented Programming Unlearning objects

Rate this book

424 pages, Paperback

Published July 1, 2021

21 people are currently reading
249 people want to read

About the author

Yehonathan Sharvit

4 books13 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
21 (26%)
4 stars
25 (31%)
3 stars
24 (30%)
2 stars
8 (10%)
1 star
2 (2%)
Displaying 1 - 16 of 16 reviews
1 review1 follower
February 4, 2022
It is an awesome book which clearly explains why representing data directly without wrapping them in objects makes the system less complex and more understandable. These ideas were popularized by Clojure but I love that they are explained using traditional languages such as JS.
Profile Image for Guillaume Bailly.
30 reviews
October 3, 2022
Not necessarily innovating, but interesting just for the perspective it brings, even (especially) for experienced programmers.

A controversial book, that raises many questions, answers some of them, but also leaves others unanswered. Comes just a bit too short in my opinion.
Profile Image for Gualtiero Testa.
5 reviews1 follower
October 14, 2022
The data-oriented programming (DOP) is a programming paradigm like the more famous object-oriented programming (OOP) and functional programming (FP) paradigms.

DOP adopts some concepts from FP (immutability, pure functions) but its main focus is to reduce the complexity of the applications by streamlining the flow of the data inside the application and exchanged by the application with external resources.

For a better introduction to DOP concepts, you can read this article: https://blog.klipse.tech/databook/202....

The Clojure language popularised the DOP paradigm but it can be also applied to other languages. The code examples in the book are in JavaScript with the Lodash library. OOP code examples are in Java.

Sharvit's book does a good job explaining the DOP approach to the most common development problems, comparing it with the OOP one. The four DOP principles are gradually introduced with a lot of code and simple but effective writing. Dialogues between fictitious characters easy the description of the least simple DOP concepts.

The appendixes are very important: Appendix A summarises the DOP concepts while appendix B shows how to implement the DOP paradigm using static-type languages like Java. The remaining two appendixes are on DOP history and the Lodash library.

Highly recommended.
Profile Image for Marrion Luaka.
29 reviews
February 3, 2022
This book is a very gentle introduction to DO. It's decently well structured and easy to follow along.

My only criticism is that switching between languages when showing examples could somewhat be confusing for some.

Overall it is a good book, I recommend it.
1 review
October 24, 2022
The book is superb!
Yehonathan starts by highlighting the trade-offs of Object Oriented programming and how to reduce complexity with help of data-oriented programming. I wish I had read this book before my undergraduate program.

The second part describes concepts like data inspection, polymorphism, Lock free. All of these concepts are heavily used by programmers daily. Each page are valuable tips that can be applied in day to day programming.

The third and last part is the most challenging where the author encourages the reader to leave its comfort zone and write your own manipulation tool set, extend primitive data types and write unit tests that covers property based testing.

The language of the book is not complex and easy to grasp for a new comer. The learning during the different chapter is seamless, also the reader will feel several deja-vu moments, at least, I did.

I recommend the book to readers that have only experience with Object Oriented but never dare to try the functional paradigm. From my point of view, Yehonathan does an excellent job as an author and therefore gets five stars.
Profile Image for Joao Pedro.
20 reviews
February 11, 2023
I really enjoyed the Socratic style of writing that present the benefits of dop via a sequence of dialogues between programmers developing a software.

That being said, the book is great and bring light to dop just when it is ripe for widespread adoption. I see a great benefit for it in the ML world (not the scope of the book) but where data manipulation and preprocessing take most of dev time and so dop has much to offer. One finds peace when he/she knows that the same input will always deliver the same output.

DOP principles like data immutability and stateless programs also facilitate parallelization and lazy evaluation.
2 reviews1 follower
May 31, 2023
A very good book, exerting simple principles to solve complex, changing requirements.

This is one of these books where the simplicity of the points and arguments contradicts established practice, to the point where one goes "but why don't we always do this?" Although the techniques are formulated against certain coding platforms in usage in the 2020's, they are timeless in their solid principles and foundation. This is worth a read to think about one's coding practices. And perhaps change for the better.
Profile Image for Ridho Febriansa.
90 reviews1 follower
June 26, 2022
great introduction to data oriented programming,

as a non OOP engineer, I'd struggling during first few chapters.
but after that, it works fine, very insightful!

my senior been implementing this "OOP" and "FP" concept on the current project, and I've been struggling to like 'why is it should be this way and that way'.

but after reading it, I can see exactly that my senior is doing great.
and I am going to pursue this DOP journey!
1 review
October 13, 2022
Very interesting read. It explains an alternative approach to Object-Oriented Programming for a practical example (an application to manage books for public libraries), starting from a pure OOP approach and then gradually shifting towards a more and more DOP design. It's probably hard to apply DOP to any program, but reading this book will surely give good ideas to be used even in more traditional architectures.
4 reviews
November 12, 2022
Berates OOP while not understanding its meaning. Alan Kay, who coined the term OOP, specifically ruled out C++ and Java as OOP languages, and said OOP is more like the Actor model, while this book keeps insisting that OOP is Java and C++. Moreover the dialogue style of the book is not suited for a work targeting technical people, i.e. difficult to find any references for the claims the author is making.
12 reviews1 follower
February 6, 2023
While the idea is very interesting, and the book is well written, it completely ignores the central issues of data-related programming: performance management and data storage evolution (in the simplest case, data schema evolution).

That makes the applicability of the whole paradigm rather questionable in real-world scenarios.
5 reviews
December 30, 2021
A good introduction to Data-Oriented Programming. I found it useful, as a JavaScript developer, to be introduced to some different ideas from the Clojure world. I'd recommend it for anyone looking for some new ideas in a functional programming paradigm.
2 reviews
October 13, 2022
This book offers a helpful pack of introductory directions to a programming perspective where data is the center of the design. So, it is a good starting point for those who want to understand how game designers solve problems like parallelization.
Profile Image for John.
119 reviews26 followers
December 29, 2022
Probably the best modern book on data-oriented programming. This book follows a "Phoenix project" approach which means that it tries to build a story between some characters while trying to teach you things. The background story doesn't really have any real interest but it helps make the book entertaining instead of dry. It used javascript and lodash to build a project from scratch to hero. I'd prefer if something like python could have been used instead but javascript is pretty trendy nowadays for backend as well. All-in-all this book was great, the examples are well formed and the fact that it takes a project from requirements level to full working one is great. My only gripe is that in every chapter there are some key lessons that are mentioned in terms of dialogue (aka Joe the wise said X) and then you get the exact same thing in a highlight quote as well. I'd have preferred the thing being rephrased or phrased in a more "generic" fashion but maybe it's me being pedantic. Highly recommended
Profile Image for Kirill.
Author 1 book12 followers
March 17, 2022
A great overview of the practical benefits of functional programming presented without actually diving into functional programming
1 review
November 1, 2022
Is an excellent work, is the perfect mix between a novel and a technical document, with code examples and a background story to keep you engaged.
Displaying 1 - 16 of 16 reviews

Can't find what you're looking for?

Get help and learn more about the design.