Thoughtful Friday #16: The game devs are ahead of all of us
Let’s dive in!
Time to Read: 4 minutes
Data is just as important as code…
So data-oriented programming should be a mainstream thing!
So tinyML should be just as important as bigFatGPUML.
I had a GeForce 256 on one of my first gaming computers. The GeForce 256 was released in 1999 by NVidia as one of the first GPUs, specialized chips just made for gaming or more precisely for doing the computations necessary to render polygons. Which happen to be matrix multiplications and additions.
It took roughly 10 years for the rest of the software development world, in this case, the machine learners, to catch up to that idea. The chips were already there, but 10 years passed before everyone else realized it.
The idea of “tinyML”, making machine learning smaller so as to fit on edge devices. It’s just now becoming popular even though the gaming industry started to optimize for speed on any device back in 2008 and never looked back. Mike Acton was one of the first to point out some of the big lies in software development, all of which IMHO are still very much believed in the software dev world.
To me, it feels like the gaming dev community realized something fundamental 22 years ago and has been iterating on it ever since. The rest of the software world seems to lag behind by approximately 10 years.
The major idea of the gaming community is pretty simple.
Key Point: “Data is just as important as code; So consequently we need special chips for code as well as for handling data. Consequently, we need to optimize for speed by caring about both data and code, which is where data-oriented design & programming enter the picture,... Consequently, we need to do things very differently on edge devices because that’s where ALL the action is going to happen…”
So many more things follow from this simple idea, so many are already in place and known, but not yet mainstream. I’m wondering whether we need a speed booster as a community.
Things we’re not (yet) taking seriously
I chatted with Yehonathan Sharvit bit about this, the author of the book “Data-Oriented Programming” in which he makes the case, that separating data and code will usually result in less complexity and thus much better code.
One anecdote he shared was astonishing to me and yet exactly what I’m concerned about: When Yehonathan started to write the book, he googled the proposed title “Data-Oriented Programming”. He was sure there must already be a book with that name out there since people in software development have been familiar with data-oriented programming for years…
Yet, Google returns 0 results. No book, no article, nothing.
If I look at tinyML, the movement of making machine learning happening on “tiny” things, starting to care about speed & efficiency, about how computations actually work, it still looks like a complete niche field. To my knowledge, next to no machine learning experts have experience in making stuff actually work on edge devices.
And yet, if you take a look at the numbers, the average time spent on devices has been larger on edge devices like tablets & mobiles than on desktops since 2020! And this trend is going to explode. Almost all data will be produced & handled on edge devices in the near future, so of course, I’m concerned about the relative importance of the topic today.
In machine learning & in the data world, in particular, most of the tooling that is developed to help developers is focused on abstracting storage and computing away. Which is the exact opposite of what we are going to need if we want to take data seriously.
The gaming community has realized already, that the “pain of handling computations & data” is not going to go away ever. Instead, we need to embrace it to truly deliver value with data.
I think we’re still a far cry from embracing this idea, we’re still trying to run away from it and circumvent it, I feel there’s a big opportunity here in embracing the simple truth of the importance of data.
A Deep Summer Vacation
I was about to schedule a series of newsletters for my vacation. But then I realized, I love deep work and deep vacations. And I think I should advocate for them. So instead of spamming you with newsletters & tweets throughout my vacation, I will not.
I will spend the next 4 weeks with my family having fun and thinking deep thoughts ;)
Stay tuned, the next edition is a “Three Data Point Thursday” on the 18th of August, 2022.
What did you think of this edition?
Want to recommend this or have this post public?
This newsletter isn’t a secret society, it’s just in private mode… You may still recommend it to others. Just send me their e-mail, ping me on Twitter/LinkedIn and I’ll add them to the list.
If you really want to share one post in the open, again, just poke me and I’ll likely publish it on medium as well so you can share it.