"What are the reasons you'd prefer one over the other?"
Python's style is simpler. Java's style allows same-name products from different organizations.
"Do those reasons apply across the languages?"
Yes. You can easily have top level Python packages named "com", "org", "mil", "net", "edu" and "gov" and put your packages as subpackages in these.
Edit. You have some complexity when you do this, because everyone has to cooperate and not pollute these top-level packages with their own cruft.
Python didn't start doing that because the namespace collision -- as a practical matter -- turn out to be rather rare.
Java started out doing that because the folks who developed Java foresaw lots of people cluelessly choosing the same name for their packages and needing to sort out the collisions and ownership issues.
Java folks didn't foresee the Open Source community picking weird off-the-wall unique names to avoid name collisions. Everyone who writes an xml parser, interestingly, doesn't call it "parser". They seem to call it "Saxon" or "Xalan" or something completely strange.
answered 2009-04-02T10:18:03.320