"Stephen R. van den Berg" <[email protected]> wrote:

> Then I thought about what these things are about, and decided that the
> (in my mind) logical group I'm thinking about all has to do with
> *hardware* I/O.

Maybe Peripherals, Interfaces, or Bus, then? Although I still believe
the distinction between that and Protocols could potentially get
blurred.

> So I'm currently implementing USB and OneWire, but I could imagine that
> other stuff that belongs in this category would be things like:
> I2C, SPI, 1-Wire, USB, JTAG, MIDI, PC keyboard, UART

Technically precise names like these are perfectly good by themselves -
the risk of an accidental name conflict with something else is minimal.
Adding any hierarchical structure in such cases doesn't help. It can
only make it more difficult to find the module since one would have to
figure out how the implementor has thought, which in the case of Pike
with its rather weak central control means it probably isn't even
coherent, since different module writers have had different ideas.

Wikipedia is a good example of a very large flat namespace. Considering
its size I think it shows well how relatively seldom name conflicts
occur in practice, and how easy it is to find the right definition for a
specific term. It would definitely be a whole lot more difficult if they
had tried to impose some kind of hierarchical classification system. In
particular if there could only be a single hierarchy, as would be the
case with pmod directories.

So that just leaves the problem that the top level list could grow long.
I think that's non-issue in practice, considering the tiny amount of
development in Pike, but if it would become a problem it could be
handled with some search tools.

Reply via email to