Hacker News new | ask | show | jobs
by dmos62 1115 days ago
The difference between the words emulate and simulate are difficult to grasp for me. One comes from the latin `aemulus` and the other from `similis`. One talks about imitation and the other about similarity. When people discuss the differences between these terms, they say things like one aims to be able to replace a thing, while the other aims to replicate the thing's internal state. Or, that one aims to replicate the external behaviour, and the other aims to replicate the internal state.

I somewhat discard these interpretations. My conclusion, is that emulation is about making something equal to something else under some circumstance, while simulation is about approaching emulation (under some circumstance), but not aiming or achieving complete emulation (under that circumstance). Basically, the difference between becoming equal and becoming similar. This is counter to popular usage I think, but popular usage is a bit of a mess, in my opinion.

3 comments

The problem with simulation is that it might produce artifacts that a user might exploit ("hey, this is cool!") and then finds out that it only exists in the simulation, not in the real world.
The concept of perfectly accurate emulation lies at the core of formal definitions of computing such as Turing’s seminal “Turing Machine” introduced in “On Computable Numbers” way back in 1936.
I went down this rabbit hole recently and came to the conclusion that their is no real difference between those. When does something cease being an emulation and turn into a simulation?
When you can't replace the emulation target with the emulator, it stops being an emulator.