Eliminate the unavoidable complexity of object-oriented designs. The innovative data-oriented programming paradigm makes your systems less complex by making it simpler to access and manipulate data.
In Data-Oriented Programming you will learn how
Separate code from data Represent data with generic data structures Manipulate data with general-purpose functions Manage state without mutating data Control concurrency in highly scalable systems Write data-oriented unit tests Specify the shape of your data Benefit from polymorphism without objects Debug programs without a debugger Data-Oriented Programming is a one-of-a-kind guide that introduces the data-oriented paradigm. This groundbreaking approach represents data with generic immutable data structures. It simplifies state management, eases concurrency, and does away with the common problems you’ll find in object-oriented code. The book presents powerful new ideas through conversations, code snippets, and diagrams that help you quickly grok what’s great about DOP. Best of all, the paradigm is language-agnostic—you’ll learn to write DOP code that can be implemented in JavaScript, Ruby, Python, Clojure, and also in traditional OO languages like Java or C#.
About the technology
Code that combines behavior and data, as is common in object-oriented designs, can introduce almost unmanageable complexity for state management. The Data-oriented programming (DOP) paradigm simplifies state management by holding application data in immutable generic data structures and then performing calculations using nonmutating general-purpose functions.
About the audience
For programmers who have experience with a high-level programming language like JavaScript, Java, Python, C#, Clojure, or Ruby.
About the author
Yehonathan Sharvit has over 20 years of experience as a software engineer. He blogs, speaks at conferences, and leads Data-Oriented Programming workshops around the world.
PLEASE When you purchase this title, the accompanying PDF will be available in your Audible Library along with the audio.
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.
Professionally, I write code for web applications in PHP for biomedical use. Thus, data play a central role in my professional life. At first, I tried to design my programs around object-orientated (OO) principles, but soon found that data played a strong role that OO actually restrained. Years later, I found how React divided itself between immutable data, state information, and code. Though I no longer code in React, I find this division still helpful in how I design code.
Curious about this book’s title and the theoretical advances that might help me, I picked it up. It makes a similar leap that I made years ago, but it does so in a way that attaches theoretical concepts to my more practical adjustments. It uses language-agnostic technologies like JSON Schema and Multi Methods to teach programming concepts that can be generally applied to multiple contexts.
I read this book as an audiobook. At first, I was skeptical that I would follow much of the book’s flow because of the format. However, I was pleasantly surprised that I retained a great deal. I found myself picturing code even as I drove or washed dishes. The book’s style is conversational and framed as a human story. Therefore, it is not heavily convoluted as some coding textbooks are.
This book’s main audience is clearly the computer programming community. It particularly addresses those who dwell in a space of big data and who see OO as a slower paradigm to complete projects. Indeed, I suggest Yehonathan Sharvit points not only to quicker results but also to more accurate outcomes. The text elegantly describes how to reorient one’s approach to data-driven web programming, both at micro and macro levels, so that a better product can emerge.
extremely harmful book - 4 doubtful ideas spread thinly over 400 pages 1) "Small performance hit" - sure, this is why clojure in all performance tests 8-10 times slower than Java 2) first real array-oriented PL was APL, and all disadvantages of such systems have long been known - poor scalability in terms of entities. In book they barely 10, in typical systems - several hundreds each containing 10-100 fields. Good luck in finding references to fields "name" & "id"
so for prototypes this approach ok, but for production - it's just waste of computation resources to the delight of cloud providers
However considering that for the last 30 years the industry has been inexcusably choosing the most vomit-inducing and slow solutions - this heresy has a chance to become the next Official Cult.
I was THE OO programmer. OO seemed to be THE best programming pradigm to work with. I was always struggling with some aspects of OO but they seemed to be related to the problems themselves, not on how to tackle them. This book provided a great insight why you might consider the data-oriented programming paradigm for tackling programming problems. I also like his writing style based on a story plot to introduce the paradigm and it's principles.