We were taught to avoid conflicts by using a package name such as
com.adigio.subproject.package. This is much better than just using a project name such as “web.” for sure.
However, I keep running into packages such as
com.mything.* where mything isn’t a domain at all that the owner owns.
So now, we have moved the namespace clash down a notch.
Do we need the
com package anymore? Would
adigio.* really be so much worse?
A large part of me thinks not, and as long as we are not stupid and do not pick generic top level packages, we would be fine. This seems to work OK in the other language camps :)
In fact, in some ways, I always liked the fact that: Net::FTP and Net::HTTP could actually be written by different parties…. and that is managed in a different way.
Do you like the
com package? (or .net, or .countrycode, etc).
Think about how much package renaming we wouldn’t have to go through in open source (net.sf.* -> org.myproject.*). For example, if Hibernate was just
hibernate.* to begin with.