> Getting deterministic behaviour out of it is.
As you said, there is `pip freeze`, but also the Pipfile.lock for pipenv and the poetry.lock for poetry.
> but sooner or later you'll want to upgrade something that depends on something you froze, and so then you have to unfreeze everything and hope that nothing else breaks
Same for Rust with its Cargo.lock, same for JS with it's package-json.lock or yarn.lock, same for everything that lets you freeze your dependencies.
EDIT: That's also what test suites and CI/CD are for.
> The Python ecosystem has many options because they all suck.
They let me write software, manage dependencies and virtualenvs, there is even pdm which supports the recent PEP for __pypackages__ (equivalent of node_modules) instead of a virtualenv.
Can you clarify how every single one of them suck?
> they still haven't managed to catch up with where Maven was 20 years ago
What does Maven do to prevent the problem of upgrading frozen dependencies?
> I'd argue they've actually gone backwards in some ways, e.g. including pip in newer versions of Python
Care to clarify?