At MPOW [1] I have a Mac because it can be properly sealed and instrumented by certified commercial tools. Inside it, I do all development in a Linux VM that runs my editor, language servers and linters, source control, local build pipelines, local DBs, a local emulator of many AWS services, and the system under development.
The native macOS apps I run are Firefox, Zoom, Outlook, a VPN client, and, of course, a VM runner, and WezTerm to interact with the VMs.
I slightly miss the GUI niceties of Emacs and Vim, but both are very much usable via a terminal session: true color, mouse support, shared clipboard, blazing display speed. I could run VSCode if I wanted. (I of course also somehow miss sane window management which I could get under X or Wayland, but frankly 3-4 native windows are not such a pain to manage manually, and Firefox has Tree Style Tabs.)
With new Macs being ARM-based, and most production servers being x64-based Linux, there's pretty little choice, mostly about the type of emulator you pick. Yes, you can mount the source tree via NFS. Or you can develop 100% without native code locally under macOS, it works with Java and somehow with Node. If you got Python though, you suddenly depend on significant amounts of native code extensions (from greenlets to numpy to Pillow to ML libraries), and developing on exactly the same OS which you run in prod saves you a lot of trouble.
[1] "My Place Of Work"