Yes, and as a linux admin and user who is stuck on MacOS for work, it drives me absolutely nuts, even more so when people defend apple or microsoft with justifications that the other does it. They both suck.
I don't really think being told to run `xcode-select --install` is worse than being thrown into the Microsoft Store, because one is a flow-breaking action, and the other is not. If I'm at a Terminal and I don't have something installed, the fastest way to resolve the problem is with a Terminal command.
It's not that simple. That command forced me over to the app-store to log into my apple id the last time I ran it for example. You may run it enough or be inside the ecosystem enough that you haven't run into that, but then when my apple-id had errors (I don't buy apps, and only have it because apple forces you to, so I almost never log in with it), I couldn't install xcode... and had to go find a fix on some random forums. Now that I finally fixed all that, the updates are smoother, but it wasn't a pleasent initial experience and did not allow me to stay in the terminal.
iOS and OSX are littered with Ads. I've even seen ads in Apple apps (Music for example) where there shouldn't be any (for example, popping up a full screen ad in front of the screen to play a song I already own). I use both Apple and Microsoft OSs on a daily basis. Anyone who thinks Apple doesn't do this stuff isn't paying attention.
No. At worst it prompts you to download and install the Command Line Tools (all actionable inside the prompt; it doesn’t use the App Store) if you try to run a command not included in the OS by default like `git`.
In fairness, annoyed though I was, the command line message you get in Windows includes directions into the settings page to disable the feature, and any others like it while you're in there.
The real surprise was mostly that python3.exe isn't included in the 3.9.x download, despite the documentation mentioning it in a few places. Since the error message didn't name drop the executable, and it appeared python was otherwise installed and working (and even available as "python" on PATH) it took some sleuthing to locate the real issue. I'm sure there's a better fix than copying "python.exe" and renaming it "python3.exe" but that worked, and I had stuff to do, so it's fine. :)
Windows doesn't present you with any actions or choices inside the command prompt. It just immediately opens the Microsoft Store to the Python 3.9 page.
It doesn't do that, if you install git in some other way (via homebrew, or manually). So it is definitely different from this:
> even after installing Python from the official website, if you happen to run a script that executes "python3" instead of "python", you'll instead trigger an unhelpful link to the Microsoft Store
The point is that python3 was already in place, and the package on the official website only created the python executable, so the stub linked to the Microsoft Store wasn't overwritten.
This is no different than macOS. If you don't overwrite the existing stubs, you get the "install xcode" message when running git or cc.
But if Apple does it, it's OK because they're the good guys.
There's no overwriting stubs in MacOS. With SIP enabled, not even root can write into /usr (the apple stub is /usr/bin/git).
Many users use git from homebrew; once you do 'brew install git', the stub won't bother you, despite homebrew not overwriting anything. It is just earlier in the $PATH. And that's the issue with Windows: the standard installer does create python3.exe, it is just later in the %PATH%, because Microsoft placed the stub in one of the early directories. Normal, well behaved installer, which places its entry at the end won't be able to override anything.