Namespaces (was Re: Bug#682496: ITP: melange -- Melange Widget System for the Cream Desktop Environment)
On Tue, 2012-07-24 at 13:00:14 +0900, Charles Plessy wrote:
> Le Mon, Jul 23, 2012 at 10:22:06PM -0400, Paul Tagliamonte a écrit :
> > Let's please keep the namespace clean. I'll talk with whoever introduced
> > it, but we can upload a temp metapackage and upload it with time for a
> > beer after.
> I agree with Paul. Our downstream distributions do not have the same
> constraints as us. If we want to to stay "universal", we need to send
> a strong message that short, common dictionary words are better be
> avoided in the interest of all.
While I agree that when it comes to a distribution it's really very
important that we take care of the namespace_s_, which are not only
package names, but command names, shared library names, C header file
names, etc, I strongly disagree a simple rule as “do not use common
dictionary words” would be good or appropriate at all. Namespaces are
all about context.
One thing is to name your text editor just “editor” or your browser
“browser”, the other is naming it dolphin, which is also a common
Another difference would be if your implementation is either generic
or field specific, an example could be libmaildir4 which used to be a
KDE specific library to handle Maildir mail boxes, if that would have
been a generic low-level toolkit-neutral implementation, I think it
would have been ok-ish, but not as it was (which ideally should have
been named libkmaildir4). The same applies to command-line tools, if
your tool is called «add» but is used for stuff related to chromosome
additions then I'd say that's really not appropriate, but if it's used
to compute the addition of two files filled with numbers then that'd
seem better (preferibly if it comes from an existing base package).
Or if someone devises a new tool named “feather” and suddenly it
proves to be very useful, and lots of clones appear, then those would
be feather-clones, and it would not be appropriate to make the
original change its name, in the same way the original vi was just
vi, and the subsequent clones got their variant names (nvi, vim, etc).
And we have to take into account that a huge amount of computing terms
come from metaphors from real life or other fields or simple reuse of
generic words, so outright banning common dictionary words would mean
we cannnot name new things to come.