vvanders
The other thing to keep in mind is that engines are build towards certain strengths/game-types. Trying to do open-world in UE3 required making some fairly invasive and substantial changes as the engine was built more for somewhat on-rails shooter. It didn't support geometry streaming and a number of other things that are needed to seamlessly transition between large open areas. I remember a number of MMO-style games used UE3 purely as a rendering front-end and mostly built the game tick, physics and netcode back up from scratch.
There are "tells" for engines if they aren't tuned properly(i.e. it was really easy to tell UE3 by the 30s frame hitch as the periodic GC ran) but a fair bit of that can be addressed if the team wants to put in the time to enhance or rework the systems involved.
While you can write high performance C++ my experience is that many people will reach for shared_ptr and their like while Rust will force them into proper structure/ownership as Arc and their like have a lot higher friction.
Very common that replay/demo uses the network stack of it's present in a game.
We used to store animation data in mmaped flatbuffers at a previous gig and it worked really well. Kernel would happily prefetch on access and page out under pressure, we could have 10s of MBs of animation data and only pay a couple hundred kb based on access patterns.
Binder handles work just like object capabilities, you can only use what's sent to you and process can delegate out other binder handles.
Android hides most of this behind their permission model but the capability still exist and can be implemented by anyone in the system.
It also depends on the team, some teams have a high density of seasoned experts who've made the mistakes and know what to avoid but I think the history on mem vulns show that it's very hard to keep that bar consistently across large codebases or disperse teams.
My experience is that Rust guides you towards defaults that tend to not hit those things and for the cases where you really do need that fine grained control unsafe blocks with direct pointer access are available(and I've used them when needed).
One of my favorite blogs on the topic https://ferd.ca/the-zen-of-erlang.html that does a great job of covering how Erlang approached the topic, lots of learnings that can be applied more broadly.
The advice in the article is great, and much of it resonates with what I have seen over my career as well.
Don't get me wrong I'm glad they're responding to feedback but the feedback shouldn't have been required in the first place.
I'm all for better security on products(esp ones that heat up to 300C!) but interoperability with open standards makes it a better product overall and given the direction we've seen in the IoT space I think they've done quite a bit of damage(even if not intentionally) by not taking more care in this area.
Totally understand if it's something that could change/break in future updates but the language about it being "exploited" is a bummer, you would think extending/documenting that would actually drive further adoption of the printers by building a more robust ecosystem around them.
More tools in the C/C++ realm are always welcome but I've yet to see more than 50% of projects I've worked on be able to successfully use ASAN(assuming you've got the time to burn to configure them and all their dependencies properly). I've used ASAN, CBMC and other tools to good effect but find Rust more productive overall.
From what I recall we mostly did it for predictability so that things that may go long wouldn't interrupt deadline sensitive things(audio, physics, etc).
Even for non-rendering systems those still usually run at game tick-rates since running those full-tilt can starve adjacent cores depending on false sharing, cache misses, bus bandwidth limits and the like.
I can't think of a single title I worked on that did what you describe, embedded stuff for sure but that's a whole different class that is likely not even running a kernel.
Rather than being cynical maybe it would be worth your time to consider volunteering and better understanding how these things are managed. You might be surprised to find it's usually fairly educated folks who care about making sure what we have today is around for the next generation.
If you've got 10-15+ consumers of a shared library or want to do plugins/hot-code reloading and have a solid versioning story by all means vend a DSO. If you don't however I would strongly recommend trying to keep all dependencies static and letting LTO/LTCG do its thing.
I've got a ham license so not a big deal for me but for those wanting to try radios without a huge investment a pair of $20 Lora AT serial radios are a great way to dip into digital radio.
Lora also has really good FEC and other things that make it work incredibly well(at the cost of throughput). Honestly I wish we saw more things like that in the ham bands(other than FT8).
There's a couple Lora radios out there that are USB serial based and can be controlled with AT commands that would let you so something similar if you want to build up from scratch.
There's a number of micros these days where the same libraries are provided using SVD[1] that will generate interfaces which is handy.
VFD AC motors will intrinsically self-correct for overspeed when static traction slips and starts going into dynamic region (due to the frequency being slower than the slip/overspeed) and re-enter static friction region. DC or ICE will react to the lack of traction by turning faster as you hit the dynamic friction region and "spin out". Traction control is always reactive and lags behind. Last I read the difference in traction on rail for AC vs DC was on the order of 50%(!).
It's also why EV cars have stupidly awesome traction in adverse conditions under acceleration, trains had been perfecting that technology for decades.
I had Bruce as a teacher in one of our early CS classes at college, he showed us all sorts of black-magic performance tricks(at least as it appeared to us at the time) and that curiosity in wanting to understand the how/why played a large part in where I am today.
I don't know if it's any consolation but I know he had an outsized impact on a number of us back then.
[edit] 10:50! https://www.tptoriginals.org/how-to-talk-minnesotan/
We ran Lua for the entire core of a game in a 400kb preallocated on the PSP about 20 years ago. I know of many places that used it long before us.