There’s no such thing as a digital computer. Except in extremely controlled or constrained environments. I suspect those exist … somewhere … but I don’t work in hardware development, so I’m pretty ignorant of that area.
This is something I didn’t realise until I was studying Computer Science at university, and it was something of an epiphany for me: not that “computers aren’t infallible” but that – at least in the way I spent my life imagining them – they don’t exist AT ALL. All you’ve got is an analogue computer that pretends a billion times a second to be digital, and some number of times a second fails. Fortunately for you who rely on digitalness, a bunch of other analogue circuits inside your analogue computer exist specifically to detect when the simulation diverges from a what a theoretical digital computer would do, and overwrite parts of the analogue data with new data to make it conform to the digital ideal it is simulating. It’s only ever a simulation, and – for the most part – a poor one, with lots and lots of stuff going on to try and keep the simulation accurate.
This isn’t an analogy, or metaphor – this is how modern computers actually work.
Is this useful? Probably not :),
I think indirectly it helped me, over time, to let go of organization in software development and embrace the unknown, which is pretty useful in any explorative or uncontrollable project management situation (just to be clear: I don’t mean only games development here, I’ve seen plenty of similar situations in mainstream IT). The last time I had a grasp of current physics theory, it was fairly widely accepted that there’s nothing in the real world that’s ever “known”, there are only estimates, but digital computers quietly squat there in literature and culture apparently sticking two fingers up at the whole concept. Only, they don’t, it’s really just us being lazy about terminology, and being self-delusional about the concept of “digitalness”.
It also emphasizes some of the fundamental differences between two aspects of systems: substance and data. A very poor explanation, I’m too tired, but: the substance of the system that is your computer is in no way digital; the data that conceptually “exists” (but doesn’t, in fact, exist) within that system is truly digital. The substance and the data are two extremely different things. So, part of each system (e.g. your Operating System, or your application, or your networking library, etc) actually exists, and has real-world behaviours. Other parts do not exist, and are more conceptual.
I find this in turn helps me appreciate the fundamental incompatibilities of data and systems, except for systems designed to store particular kinds of data, and vice versa, and above all to appreciate data as the lingua franca for all digital electonics: it’s the only thing in that universe that actually is digital. All the rest is an approximation…