30 ans ou pas, tu ne peux pas nier qu'il y a une compatibilité binaire entre AMD et Intel car l'architecture du processeur est la même, ce qui n'est pas le cas de la puce M1. Tu as le même problème si tu installe par exemple un linux sur power, les logiciels doivent être recompilés pour pouvoir tourner.
Apple fournit un émulateur X86 mais comme tout émulateur, tu as une perte de performances. Ça fait quelques années que c'est un problème qui n'existe plus car il n'y a plus que des architectures x86 sur les PC grand public mais ça revient avec les puces ARM qui ne sont pas compatibles binairement.
Tu perds moins à faire tourner des applications Windows sur linux avec WINE car le processeur est compatible binairement.
Où est-ce que j'ai nié ça ? Il ne faut pas non plus déformer mes propos.
Windows avait une version arm qui a finit par être abandonnée devant le peu de succès de ces matériels. Les applications étaient incompatibles entre les deux OS. C'est normal, si tu changes d'environnement (os, famille de processeurs), tu es obligé de recompiler, voir de récrire une partie de ton code. C'est la même chose pour linux, unix et plus anciennement d'autres OS.
Donc, un exécutable est fait pour tourner dans un environnement donné, pas sous un émulateur et que les performances soient moins bonnes a toujours été vrai, bien que ces limitations semblent moins contraignantes aujourd'hui. Je ne vois pas où est le débat ici.
Parler de version x86 ou M1 n'a aucun sens. Un exécutable est fait pour tourner sur un os et une config donnée. Le fait de faire tourner des exécutables dans des émulateurs n'est qu'une manière de contourner cette problématique, avec toutes les limitations que cela peut induire.
Pour Linux et Windows, il y a depuis plusieurs versions de Windows, la volonté de Microsoft de faire converger les deux. Un ordinateur, ce n'est pas juste un processeur, mais un ensemble de bibliothèques logicielles qui permettent de le faire tourner, si tu n'as pas le bon composant, tu auras beau avoir ton programme écrit dans le code du proc, ce n'est pas pour ça qu'il fonctionnera. Donc, il doit être compatible avec l'OS sous lequel il va tourner.