Date: Fri, 20 Sep 2019 20:31:18 +0200
Gabriel Dos Reis via SG15 <sg15_at_[hidden]> writes:
> By the time we got the Merged Modules, we have had enough internal use and
> experience to let me believe we should retain that notation, even when we
> got a different notation for module partitions. Reserving that notation for
> submodules only would have been a design mistake in the sense that it
> supposes such hierarchical organization is more prevalent than a higher
> level organization that is not enforceable at the language level. For
> example, thinking that submodules XYZ.* will all form a coherent unit can be
> imported as a whole in a given program is a nice theory but too naïve to be
> the case in practice for any medium to large organization XYZ. Rather, what
> happens is that the hierarchical naming X.Y.Z follows higher level patterns
> (sometimes organizational) that is not expressible in the language and that
> is fine. In fact, such organization are more prevalent that the strict
> submodules envisioned in the historical recount.
Agree.
The way I think of this, interface partitions are "module-private"
submodules (i.e., a user of a module cannot import individual partitions).
But the author of a module may wish to (but does not have to) organize
their modules into publicly-visible submodules.
> By the time we got the Merged Modules, we have had enough internal use and
> experience to let me believe we should retain that notation, even when we
> got a different notation for module partitions. Reserving that notation for
> submodules only would have been a design mistake in the sense that it
> supposes such hierarchical organization is more prevalent than a higher
> level organization that is not enforceable at the language level. For
> example, thinking that submodules XYZ.* will all form a coherent unit can be
> imported as a whole in a given program is a nice theory but too naïve to be
> the case in practice for any medium to large organization XYZ. Rather, what
> happens is that the hierarchical naming X.Y.Z follows higher level patterns
> (sometimes organizational) that is not expressible in the language and that
> is fine. In fact, such organization are more prevalent that the strict
> submodules envisioned in the historical recount.
Agree.
The way I think of this, interface partitions are "module-private"
submodules (i.e., a user of a module cannot import individual partitions).
But the author of a module may wish to (but does not have to) organize
their modules into publicly-visible submodules.
Received on 2019-09-20 13:33:29