Top all-time · #1807
Richard Fabian
Personal blog · dataorienteddesign.comprogrammingsystems
Richard Fabian writes Data-oriented design, a personal blog at dataorienteddesign.com about programming and systems. Since 2013, 43 different Hacker News readers have linked it 59 times, most often “Data-Oriented Design”. No feed was found, so read it on the site itself.
Most-linked posts?
- Data-Oriented Design12 people · 14 mentions · first linked 2021-01-27
- Data-Oriented Design7 people · 7 mentions · first linked 2013-11-05
- Data-Oriented Design5 people · 5 mentions · first linked 2021-05-11
- Data Oriented Design (ebook)4 people · 4 mentions · first linked 2014-03-28
- Data-Oriented Design (2018)4 people · 4 mentions · first linked 2018-10-07
- /dodbook.pdf2 people · 3 mentions · first linked 2023-07-04
- Existential Processing2 people · 2 mentions · first linked 2024-12-21
- /dodmain/2 people · 2 mentions · first linked 2022-11-28
- /site.php2 people · 2 mentions · first linked 2023-03-01
What Hacker News says?
This is the wrong direction. Let's get the history in place first. The relational calculus set up a set of operators. That's what Codd worked with. It was combined with a natural language project at IBM which gave us the vaguely English like syntax of SQL. > In EdgeDB, the data schema is formulated in a way that is much closer to the contemporary application data model. ...Unlike SQL, EdgeQL can easily extract arbit…
Comment linking /dodmain/
on “We Can Do Better Than SQL”Submitted Data-Oriented Design (2018) as a story · 262 points
HN discussionI recently spent a week or so creating a library for my project. There's not a lot of code, but it was hard to reason about the data model, what I wanted the API to look like, and what I wanted actually rendered on the other side. I was proud after getting it working, but when I had to run dozens of files through it, it was horribly slow. I don't tend to write a lot of hot code, so I was excited by the fact I had to…
Comment linking /dodbook.pdf
on “Your data model is your destiny”Submitted Data-Oriented Design as a story · 71 points
HN discussionThis has been a recognized problem for game devs for a while and recently Unity introduced DOTS to gain performance. From what I understand, doing traditional OOP means going through a lot of pointers to find information. If you put everything into arrays instead, you reduce the time spent looking up things. https://unity.com/dots IIRC, this is the textbook that unity pulls from if you want to learn more. https://ww…
Comment linking /dodbook/
on “OO in Python is mostly pointless”Submitted Data-Oriented Design (2013) as a story · 71 points
HN discussion> However, there are certain situations where I cannot imagine working without OOP. (...) Similarly, a computer game, having an EnemyDemon inherit from Enemy, so that it has .kill(), .damage(), and properties for health, speed etc.? You'd be surprised. This is much cleaner, and more efficient too: https://medium.com/ingeniouslysimple/entities-components-and... more in depth: https://www.dataorienteddesign.com/dodboo…
Comment linking /dodbook/
on “OO in Python is mostly pointless”Submitted Data Oriented Design – first chapter (2018) as a story · 67 points
HN discussionTL;DR: I'm trying to Forth a Lisp. This is long winded, but maybe you have some thoughts here. I've been building a DOM-builder API recently in Rust. The existing options (there are many) tend to use textual templating, which can't reason well about anything, or basic macros, which never support indentation. I wanted something that was just code, where I'd be in full control on the indentation (or lack thereof) prog…
Comment linking /dodbook.pdf
on “Forth: The programming language that writes itself”Submitted Data-Oriented Design as a story · 16 points
HN discussionSure, the main book I had in mind is "SFML Game Development" https://www.packtpub.com/game-development/sfml-game-developm... SFML is a C++ library that handles window management, input, sound, etc... For reference, a friend and I went through the book chapter by chapter a couple years ago. He was new to programming, and I'd made a few simple games and read scattered info in the past. The book had a good pace and fil…
Comment linking /dodmain/node5.html
on “My Most Important Project Was a Bytecode Interpreter”Submitted Data-Oriented Design as a story · 8 points
HN discussion> that uses composition instead of inheritance What they are referring to as ECS is more than just composition over inheritance. There are entity component architectures that are just that--Unity's existing class based component architecture for example. But the ECS in this case refers to Data Oriented Design--basically laying out data like normalized database tables. Every component system has a table, and each row…
Comment linking /dodmain/
on “OOP Is Dead, Long Live OOP”Submitted Data-Oriented Design as a story · 6 points
HN discussionThere's been a few talks: CppCon 2014: Mike Acton "Data-Oriented Design and C++": https://www.youtube.com/watch?v=rX0ItVEVjHc CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”: https://www.youtube.com/watch?v=yy8jQgmhbAU Building a Data-Oriented Future - Mike Acton [2019]: https://www.youtube.com/watch?v=u8B3j8rqYMw And a blog/book has been created: https://www.dataorienteddesign.com/
Comment linking /
on “Data-oriented design or why you might shoot yourself in the foot with OOP (2009)”Submitted Data Oriented Design by Richard Fabian as a story · 3 points
HN discussionLook for data-oriented design [0] (not to be confused with domain-driven design) in addition to ECS. [0] https://www.dataorienteddesign.com/dodbook/
Comment linking /dodbook/
on “The Big OOPs: Anatomy of a Thirty-Five Year Mistake”Submitted It's all about the data - Data Oriented Design as a story · 3 points
HN discussionThis chapter encapsulates much of data oriented design: https://www.dataorienteddesign.com/dodbook/node5.html
Comment linking /dodbook/node5.html
on “Bevy 0.7: data oriented game engine built in Rust”Submitted Data Oriented Design (ebook) as a story · 3 points
HN discussionData-driven design[0] and formal methods[1]. update [0] http://dataorienteddesign.com/site.php [1] http://research.microsoft.com/pubs/64638/high-level.pdf
Comment linking /site.php
on “Python to OCaml: Retrospective”Submitted Data-Oriented Design as a story · 2 points
HN discussionI think they should be using the phrase "data-oriented" as in: http://www.dataorienteddesign.com/dodmain/ But maybe they have reasons for using data driven. Its heavily based around entity component systems.
Comment linking /dodmain/
on “Amethyst: Data-driven game engine written in Rust”Submitted Existential Processing as a story · 2 points
HN discussionSee also: Richard Fabian's "Data-Oriented Design" book. The fourth chapter is about component-based objects, and the preceding chapters about relational databases and existential processing are relevant. http://www.dataorienteddesign.com/dodbook/ Prior HN discussion: https://news.ycombinator.com/item?id=20380397
Comment linking /dodbook/
on “A Thought Experiment: Using the ECS Pattern Outside of Game Engines”Submitted Data-Oriented Design as a story · 2 points
HN discussionI agree. Perhaps also known as "data-oriented design". Decompose entities into components by modelling the data in a normalised way, as is done when modelling for relational databases. Group together similar data as records in homogeneous arrays, and batch process it without need for OOP polymorphic branching etc. Further reading/viewing, somewhat gamedev oriented (as is the author of this article): Richard Fabian's…
Comment linking /dodbook/
on “Handles are the better pointers (2018)”Submitted Data-Oriented Design as a story · 2 points
HN discussionsee also: Richard Fabian's data-oriented design book -- the chapter on existential processing discusses enums https://www.dataorienteddesign.com/dodbook/node4.html Rough idea: model everything as relational data - define 1 table for each state. membership of a record in the table corresponding to state X implies that record is in the given state X. > the reason why you would put an enum in table form, is to reduce c…
Comment linking /dodbook/node4.html
on “Enum of Arrays”Submitted Data-Oriented Design (2018) as a story · 1 points
HN discussion