- cross-posted to:
- linux@lemmy.ml
- cross-posted to:
- linux@lemmy.ml
YouTube video: https://youtu.be/uScsmjvdwyo
Invidious video from YouTube without YouTube: https://inv.nadeko.net/watch?v=uScsmjvdwyo or https://invidious.nerdvpn.de/watch?v=uScsmjvdwyo
PeerTube, alternative video hosting platform based on Fediverse: https://subscribeto.me/w/isv3e2tfTJyGeAT6RRSR6M
Video description:
It’s clear there are some people who don’t understand Proton. So let’s talk about it. #Proton #SteamPlay #CompatibilityLayer
00:00 Introduction
00:41 The basics of a computer
01:46 What Proton is not
03:04 What is an emulator
04:32 Proton acts like a map
05:25 Proton translates API and system calls
06:18 Proton provides a Windows-like software environment
06:55 Why are some games incompatible?
08:52 Shouldn't we demand native Linux games?
11:07 Conclusion
The term “Emulator” is not well defined and the boundaries are not always clear. But in computer hardware and software, emulation usually refers to CPU emulation. Overall one could argue that WINE is an emulation, because it emulates a certain “thing”. But as said in computer science it has accepted by most people (for the sake of having categories) that CPU emulation is emulation, and otherwise its not. Especially if we talk in context of videogame emulation. Like Virtual Machines are no emulators, because they do not emulate the CPU itself.
Slightly offtopic: I often discuss and justify why I do not consider FPGA an emulator. Sure it emulates another hardware, but in the terms of console emulation of videogames, FPGA executes the CPU cycles native. There is no middle layer in between that needs to be interpreted, it runs the CPU commands that was “programmed into”. So FPGA is mimicking, not emulating.
Just like with many other words in human language (which also is not clear across all translations and dialects of human language), the term “emulation” is just not 100% defined and there is nobody who has the definitive answer to it. And that’s okay. It’s a “domain specific” language; which means, you have to specify it before in order to make use. Otherwise you can assume it from context its “usual” meaning. Does not mean its clear, but it means nobody has the right to act like having a clear definition and saying anyone else is wrong.
It’s important to keep in mind that things said in computer science for the sake of having categories are usually said within the very narrow implicit context of a particular field of study, like microprocessor design. It makes sense there for the sake of brevity, just as arcane acronyms make sense when everyone in the room understands what they stand for in that context. But the context no longer applies when we’re out in the rest of the world using a word that is not so narrowly defined, as we are now.
I think we mostly agree, because you pointed this out yourself:
However, I want to clarify my position in response to this:
I often encounter people on social media chiding or mocking others for referring to Wine as an emulator, which is disheartening for a number of reasons. Importantly, the people reading such comments are being taught that it’s wrong to call Wine an emulator, when in fact it is not wrong at all. Wine’s very purpose is to emulate. This is plainly visible not just in how it is used, but also in how it is developed (many of its behaviors are reverse engineered Windows behaviors, departing from the API docs) and how it functions (it does a heck of a lot more than translating system calls).
The Wine project’s FAQ acknowledges the misunderstanding, a bit indirectly, by pointing out that it is “more than just an emulator”.
Unfortunately, since most people in the discussions I mentioned have no visibility into Wine’s internals, they don’t know any better than to accept what they were told by multiple people on the internet. They are misled by a smug few who love to tell others they’re wrong by repeating that officially abandoned slogan that was never really true (at least not in the context that framed it) in the first place. And then some of the misled people adopt it themselves, so we end up with more of the “you’re wrong” attitude, perpetuation of a ridiculously narrow understanding of the word, and people who publish about the topic performing awkward linguistic gymnastics to avoid simply saying “emulator” for fear of rebuke.
I think all three of those results make the world a little worse, so I’m here to let everyone reading know that it’s perfectly appropriate to call Wine (or Proton) an emulator. Anyone who claims it’s wrong to do so is perhaps a hardware field specialist who has lost sight of the importance of context in language, or (more likely) either honestly mistaken or an internet troll.
Besides those toxic people who claim something and everyone else is wrong, its not too bad. In the end, all it is about is just one tells someone else a specific definition of a word. And in a sense he is always right, because he (or she) is defining it at that moment.
I understand what you are saying there (last paragraph), but, there is context if one says Wine is not an emulator (not because of its name). The reason is, we are talking about software emulation in the sense of gaming. And there are emulators to play videogames literally emulating other systems. And we have other words to make a category for distinguishing reasons such as Virtual Machines or API compatible or ABI compatible too. I’m fully aware of the fuzzyness of the terms. I’m also fully aware what upsets you when people tell others Wine is not an emulator. But they do it with intentions to teach (such as you and me here), at least usually. Trolls aside or “idiots” aside.
So looks like you are right; we agree each other us here.