Sure, but there’s also the question of what package managers you have. On Linux systems, there’s always the “system package manager”. On MacOS, I believe Homebrew is extremely common, but not universal. On Windows, there’s nothing (Add/Remove programs is for applications, not shared library dependencies). I’d argue that the number of people who install an “extra” package manager is very much a minority. Python users get pip/PyPI as part of the default install, so that’s present, but as noted doesn’t include non-Python dependencies.
So the choice, by default, is between 1/2 (Linux and MacOS/Homebrew) or 0/1 (Windows and non-Homebrew MacOS). In the 1/2 case, yes 1 is better than 2. But also, 1 is better than 0.
I think we’re making progress on making sure PyPA tools work with Linux distros and Homebrew. We’re not there yet, but we have the processes in place and we’re working on it.
People using Nix or Spack are likely either specialists, or are using environments managed by specialists for them (HPC being the case that immediately comes to mind). I’m going to ignore them for now, both because I have very little knowledge of them and in the interests of brevity.
And then there’s conda. I don’t know how Linux users/maintainers see conda, and I’d be really interested to better understand that. I guess MacOS either feels “Linux-like” (Homebrew) or “Windows-like” (non-Homebrew) but again, I’d love to get actual information here. But on Windows, my impression is that many users view Conda as an application, much like RStudio, Eclipse, or Visual Studio, which provides a “language environment” for Python users. As such, they don’t think of it as a system-level package manager (Windows users don’t tend to even know what a package manager is!), but more like a “plugin manager” for the application. So you use conda to install stuff for conda. Using pip feels weird and slightly wrong. Finding something is missing from conda seems like something you have to live with, not something you can address yourself. Etc.
To be clear, that’s how the conda users I’ve worked with have perceived conda. It may not be the way people here expect or want users to view it, but in that case there may be an education gap that conda needs to look at. Or maybe not - maybe conda developers are happy with how people use conda and there’s not a problem. But I think it’s something that we should be aware of here, as we have a long history of misunderstanding each other, particularly around the relationship between conda and PyPA, and I think explaining our understandings, even if they seem wrong or misguided to the other parties, is a useful way of establishing some common ground.
PS This is getting quite a long way away from PEP 711. Maybe it should be split off into a separate thread? On the other hand, it’s ground we’ve covered before, so maybe we should simply leave it at this point?