Your analogy to GNU+Linux is very apt, except in our case the wound is more self-inflicted. GNU and Linux were two different organizations/communities that came together and now are somewhat synonymous. In our case, we’re just really bad at naming things and overuse “Anaconda.” We’ve earned the confusion here.
FWIW, I agree completely that a CLI-driven workflow is superior to Navigator. Navigator is helpful to beginners who find the CLI scary for whatever reason. Conda is still useful for creating environments and installing packages without Navigator, and more advanced users tend to prefer to install miniconda (conda + deps, including python), and use that to build environments. You could, for instance, create an env with jupyter notebook, julia, and tensorflow in it, and download none of the myriad other packages in Anaconda.
About PyCall — that is an interesting point. We don’t hear much from the Julia folks lately, but yes, I can certainly see how that extra level of indirection would make using pip hard. If you can run subprocess calls, you can try the “conda run” command, which writes small wrapper scripts to activate environments, then run your command. For example:
conda run -n someenv pip install imagesize
I’m pretty limited in my knowledge of Julia with conda. I know it has been something that people have worked on, but it has never become mainstream, unfortunately. Supporting “conda run” in Julia to do things in conda environments might be a helpful thing.