The alternative would be to run Windows for ARM (which includes an x86 emulator) - that would require co-operation between MS and Apple and/or Parallels/VMWare, and there are some technical questions, but it disnae break the laws o'physics Captain. That could give better performance than the current MS ARM offering on what native ARM Windows apps exist - and should also be a better way of running x86 Windows apps, because only the application code needs to run under emulation (rather than the whole Windows OS).
Ditto for Linux: emulation (slow) or Linux for ARM. The difference is that ARM Linux is pretty well developed and most of the major packages/open source projects already work fine on ARM: Unix/Linux has a culture of hardware-platform independent source code and, since most of the major packages are open source, if the developer can't be bothered to build ARM versions then someone else probably will.