>Dictionary merging and update operators contradict the "one way to do it" with weird and confusing syntax that's completely redundant to methods that already exist.
I find the unpacking syntax elegant. There are yet more unrealized possible generalizations of it that I can think of.
> Type hints are a sore spot for me.... Python resisted match/case syntax for decades, but when it finally arrived, it did so in a way that’s anything but standard
Many people expect match/case to be "a switch statement" but it really is not designed for this purpose. I agree that it's an awkward fit and I don't use it. Similarly, I only use type annotations for documentation purposes.
> Dicts are ordered now, but is OrderedDict deprecated? No, because it's just slightly different in weird and mostly unimportant ways.
Large amounts of existing code are dependent on those ways, because the code was written to use that design. The ordering of dicts since 3.6 is an accidental consequence of an unrelated space optimization. In my view, the team erred by deciding in 3.7 to guarantee that ordering. I have concretely identified a further space optimization which is prevented as a result.
> Python in 2005, when everyone depended on the standard library, was a safer place than npm is today.
The flip side of dependency risk is security risk from lack of maintenance. For example, the standard library `json` module is a frozen-in-time old version of `simplejson` (it even remembers a useless version number). That project is still actively maintained (https://github.com/simplejson/simplejson) but none of those improvements - even if they fix security - will make it into Python except by parallel work by the core dev team. (Or accepting a patch; but that also requires either the maintainer or a third party to notice that a recent `simplejson` change is a security fix, figure out how to backport it to the much older version, and make a PR.)
There are other ways to solve the problem. For example, an organization similar to PyPA could publish a set of "core" libraries, versioned independently from Python but explicitly tested as part of the CPython release process. (That would also allow for fixing the problem that the standard library isn't namespaced - which is at the root of the problem whereby beginners e.g. put their toy lottery project in `random.py` and get an error from a circular import, or - I swear I'm not making this up - having a `token.py` in the current working directory breaks the interactive REPL help - see https://stackoverflow.com/a/75068706).
So, yes, it would be nice to see lockfiles that "depend only on a specific version of the Python Standard Library". Right now, that dependency goes undeclared, and the maintenance work is distributed among people who are also busy with developing the actual language.