38
In java, what is the purpose of com. In package names
(lemmy.world)
This is a most excellent place for technology news and articles.
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
To expand on this, it’s the naming convention that Java defines.
https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
Further it isn't always
com
, you'll often seenet
,org
, and rarely evenio
show up as the base package. All that said with the introduction of modules and some of the other recent changes I'm not sure how much longer we're going to see the reversed DNS naming system stick around.I’ve quite often seen people shoehorn their Github account into this format. com.github.username.projectname is quite a common sight for Flatpak packages. Reverse DNS naming assumes every package is created by a company while nowadays a large portion of popular packages were created by individuals.
It doesn't check for an actual DNS entry though, right? Would it be possible to do
person.developer.app
?Correct, there's no actual validation done. You can literally make the package anything you want, you don't even need to follow the convention if you don't want to, although it is of course considered best practice to do so. The entire reason it exists is just as a convenient way to namespace Java classes without worrying about collisions. I personally think using
com.github.username.projectname
is a perfectly fine way to use the system and is completely within the spirit of it. Likewise if you wanted to useperson.developer.app
you could, although that's a little weirder. You might be better off using something likedev.person.app
, although you'd need to be careful you don't accidentally step on someones toes if someone actually has the registration forperson.dev
.