@ryanprior @foone In my opinion the problem starts at the conflation of dependency resolution and build systems.
The introduction of build systems with resolution builtin promptly reduces the friction of introducing spurious, dangerous and unnecessary dependencies to the point that short of already knowing better most will simply not have the time to think about it (Golang is big on this, but this is an issue I've noticed in a lot of IDE-centric languages).
(It also de-incentivizes proper packaging so it promptly gets left to the wayside, compounding the issue.)
Most original Java build systems had no such resolution at all and it shows in the language design (although this could be a chicken & egg thing and I'm reversing causality).
Python I think was coasting on inertia of other languages doing it right, since I think it did technically have resolution built-in from the start.