Comment by shoo
1 day ago
DoD may be a good idea for a business context where one of your main priorities is getting the most efficient use out of memory bandwidth & cache.
E.g. if your job is writing game engines or middleware used by AAA games with fancy graphics to run on consumer hardware, getting the most efficient use out of the players' limited memory bandwidth may be very important.
For many (most?) arbitrary commercial software projects in other contexts, performance isn't high priority & memory bandwidth isn't a bottleneck. Performance just has to be 'good enough' & 'good enough' performance may be easily attained by writing typical OO code that uses cache & memory very inefficiently - so in those cases DoD is an engineering trade off that solves a problem that doesn't need to be solved & may create new problems if introduced.
A mindset like this has led to my TV taking 40 seconds to boot and glitching/lagging just during simple navigation, even though its hardware is about 10,000x better than what got us to the moon.
I have business oriented C++ backend where I use mostly OOP but also use DoD in few critical places that do a lot of calculations over big chunks of data. It is simpler than for games since I only need high average performance, not real time 60 or whatever FPS with no jitter.