this post was submitted on 12 Sep 2023
29 points (93.9% liked)

Technology

59664 readers
2709 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
 

Why are packages labled com.person.mypackage rather than just person.mypackage

all 4 comments
sorted by: hot top controversial new old
[–] fubo@lemmy.world 41 points 1 year ago (1 children)

They used DNS domains as a namespace to keep one company's work from colliding with another.

https://en.wikipedia.org/wiki/Reverse_domain_name_notation

[–] Zephyrix@artemis.camp 20 points 1 year ago

To expand on this, it’s the naming convention that Java defines.

Package names are written in all lower case to avoid conflict with the names of classes or interfaces.
Companies use their reversed Internet domain name to begin their package names—for example, com.example.mypackage for a package named mypackage created by a programmer at example.com.

https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html

[–] bamboo@lemm.ee 5 points 1 year ago

I addition to the answers others have given, consider the large centralized package repositories for software development: npm, PyPI, crates.io, etc. If you frequently publish packages to these indexes, you often will find name collisions and are forced to come up with clever names. In the case of PyPI specifically, it is even worse because while your pip package might be uniquely named, the actual importable python package may not be, and you end up where two pip packages clobber each other. Java's system is verbose but it is simple and solved this problem decades ago.