Snapdragon Dev Kit for Windows – the fastest X Elite, tested
jeffgeerling.com
jeffgeerling.com
And then what? Confuse your customers by asking users to pick x64 or ARM? You'll pay more in customer service costs helping confused customers, and from lost customers who downloaded the ARM version for their x64 PC and wrote off your software as dysfunctional (or, heaven forbid, they see the notice from Windows saying this software is not compatible with your device), than you'll ever gain from native ARM.
What a garbage pitch.
Most folks are already signed in with a Microsoft Account, thanks to years intensifying setup shenanigans. It's very hard to create a local-only user on initial boot.
More than 1% of your users will come from that background.
netsh interface set interface "Wi-Fi" disable
Then reboot, then when the screen comes that asks you to select a WiFi network but the list is empty you need to bring cmd.exe again with shift+F10 and type OOBE\BYPASSNRO and then it will automatically reboot and have a new screen that has a button made of only text that doesn't look clickable that you can click to skip and it will let you set up a local account.
“On display? I eventually had to go down to the cellar to find them.”
“That’s the display department.”
“With a flashlight.”
“Ah, well, the lights had probably gone.”
“So had the stairs.”
“But look, you found the notice, didn’t you?”
“Yes,” said Arthur, “yes I did. It was on display in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying ‘Beware of the Leopard.”
― Douglas Adams, The Hitchhiker’s Guide to the Galaxy
> Generally, the performance was underwhelming compared to my expectations. I know from my work overclocking Raspberry Pis there are diminishing returns when you force-feed more power into a chip that's optimized for a certain level of performance.
> There's a lot more power, a lot more heat, and only marginal performance gains. It looks like the Snapdragon X Elite on a laptop at 20-30W is only 15-30% less performant than the X Elite on the Dev Kit running at 80-100W!
> And it's downright embarrassing, efficiency-wise, compared to Apple's M3 and M4 chips (M2 is close to comparable, at least).
https://forum.obsidian.md/t/obsidian-for-windows-1-6-5-insta...
Im not sure how it differs technically from macos universal binaries but the user experience is basically the same - one download no matter what architecture you are on.
This only works if your installer framework (InstallShield, MSI, Wix, Advanced Installer, ClickOnce, etc.) supports such a trick. If it doesn't, you're forced to ask users on the download page which version they want.
If the users guess correctly, it's great. If the ARM users guess x64 incorrectly, it still works. If the x64 users click the ARM version by mistake, they will be greeted with a warning, from Windows, saying this software does not work on their device. This is technically correct but a conversion killer. The odds of this happening are also much larger than 1%, in which case, offering an ARM download is actually likely to be financially harmful on a business level.
(The smartest way of handling this I've seen is to only offer an x64 download, but your app's auto-updater "updates" your app to ARM in the background as though it were an app update. Good luck convincing developers to write all the logic for that though, on top of an existing most-likely-third-party update system, for such a niche market.)
macOS fat binaries are not actually mach-o "binaries", but they are really just an "archive file" which contain multiple files within them. When you execute one, the OS gets to pick which file to use. When you dlopen, it picks the right one, and so on. That's basically the long and short of it.
But an important aspect to note of the macOS design is that "fat binaries" would not work on systems that do not implement support for it. For example, I'm not sure Mac OSX 10.3 (Panther) had support for fat binaries, but 10.5 (Snow Leopard) added them when the Core 2 x86_64 transition happened. This is obvious when you think about it for a second, but here's the key: macOS users actually upgrade their operating systems, quickly. What that means in practice, I think, is that if you started publishing fat binaries with multiple architectures, you could be reasonably sure that within, say, 1-2 years, 99% of your users will be using an operating system that will support fat binaries. The transition window where you need to support the old stuff for Panther users is there, but it's a small window in the grand scheme.
Now think about how it works on Windows. Windows has been using the PE format for decades, and it does not have any notion of "separate sections for separate architectures" (just like Mach-O.) So, if you wanted "fat PEs", you'd need to introduce an entirely new executable format. But you can't introduce new executable file formats for Windows 8, just like how Apple couldn't add fat binaries to Panther. But millions of PCs still run Windows 8, whereas Panther was obsolete within a very short timeframe.
So, if developers start publishing "Fat EXEs" that were actually in a different non-PE format, then you're not going to be able to use those on any older operating system. And the support gap for Windows is significantly larger, so you'd be supporting the transition for potentially many years depending on your userbase. That's a significantly different trade off compared to what MacOS developers and users might stomach.
That said, they could still add support for "Fat PEs", and it would be great. But given the above calculus, I can see why they might not have gone this route, at least initially.
This is my best educated guess and I don't know anyone who could confirm this kind of thing, but that's my 0.02c.
Mach-O fat binaries date back to NeXT though, since NeXTSTEP ran on many architectures (there were quad-arch apps back then which ran on i386, m68k, hppa, and sparc).
Couldn't the ARM code be put at the end of the x86 code, so operating systems unaware of the change would run the x86 code like before, but the ARM devices shipping an updated version of the OS would skip to the ARM code.
I will agree that the fan is too loud and that Windows 11 seems to suck (I don't use it much, mostly linux here).
By the way a Mac Mini with 32GB of RAM is $1699, not the hypothetical $1200-$1400 he estimates, but you get a M2 Pro, which is a better processor. So this system is cheap for the RAM you get.
https://patchwork.kernel.org/project/linux-arm-msm/patch/202...