Hacker Blogs
Work in progress: 15,409 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #1807

R

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.

No feed foundVisit the blog
59mentions?
43HN people?
2013–2026first – last linked?
Links on Hacker News per year · peak 9 in 2021

Most-linked posts?

  1. Data-Oriented Design
    12 people · 14 mentions · first linked 2021-01-27
  2. Data-Oriented Design
    7 people · 7 mentions · first linked 2013-11-05
  3. Data-Oriented Design
    5 people · 5 mentions · first linked 2021-05-11
  4. Data Oriented Design (ebook)
    4 people · 4 mentions · first linked 2014-03-28
  5. Data-Oriented Design (2018)
    4 people · 4 mentions · first linked 2018-10-07
  6. /dodbook.pdf
    2 people · 3 mentions · first linked 2023-07-04
  7. Existential Processing
    2 people · 2 mentions · first linked 2024-12-21
  8. /dodmain/
    2 people · 2 mentions · first linked 2022-11-28
  9. /site.php
    2 people · 2 mentions · first linked 2023-03-01

What Hacker News says?

  1. 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”
  2. Submitted Data-Oriented Design (2018) as a story · 262 points

    HN discussion
  3. I 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”
  4. Submitted Data-Oriented Design as a story · 71 points

    HN discussion
  5. This 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”
  6. Submitted Data-Oriented Design (2013) as a story · 71 points

    HN discussion
  7. > 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”
  8. Submitted Data Oriented Design – first chapter (2018) as a story · 67 points

    HN discussion
  9. TL;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”
  10. Submitted Data-Oriented Design as a story · 16 points

    HN discussion
  11. Sure, 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”
  12. Submitted Data-Oriented Design as a story · 8 points

    HN discussion
  13. > 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”
  14. Submitted Data-Oriented Design as a story · 6 points

    HN discussion
  15. There'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)”
  16. Submitted Data Oriented Design by Richard Fabian as a story · 3 points

    HN discussion
  17. Look 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”
  18. Submitted It's all about the data - Data Oriented Design as a story · 3 points

    HN discussion
  19. This 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”
  20. Submitted Data Oriented Design (ebook) as a story · 3 points

    HN discussion
  21. Data-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”
  22. Submitted Data-Oriented Design as a story · 2 points

    HN discussion
  23. I 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”
  24. Submitted Existential Processing as a story · 2 points

    HN discussion
  25. See 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”
  26. Submitted Data-Oriented Design as a story · 2 points

    HN discussion
  27. I 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)”
  28. Submitted Data-Oriented Design as a story · 2 points

    HN discussion
  29. see 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”
  30. Submitted Data-Oriented Design (2018) as a story · 1 points

    HN discussion

Search all of HN for dataorienteddesign.com

Linked by the same people?