[erlang-questions] Large-scale Erlang in practice

Thu Feb 9 06:15:30 CET 2012

There _has_ been a proposal in this mailing list to manage
module names from *outside* the module, so that all module
names in a module can be short.  This does have the
consequence that the same atom may refer to different modules
_in_ different modules, but if we are going to escape diamond
dependencies we probably want that anyway.

The main inspiration for the proposal was
[Schmidt 82] Schmidt, Eric E.
Controlling Large Software Development In a Distributed Environment. PhD
thesis, University of California Berkeley, December, 1982.
This thesis is available as XEROX PARC Technical Report CSL-82-7.

The other inspiration was Eiffel's LACE.

As other people have pointed out, the problem with long_module_names
is NOT the burden of typing them.  If you have a decent editor, that
goes away.  It is the burden of *reading* them, and the fact that it
is such a slog making up (and reading) a name that reveals *where a
module comes from* that there is little strength left to reveal (or
understand) what it is *about*.

No amount of Java-style dotted names and no amount of multi_word_names
is going to do anything about versions, and in a sufficiently large
system you may need two (or even more) versions of a module in active
use at the same time *both* of which may need to be patched and
reloaded.  (Package X uses Foo-1.2.1; package Y uses Foo-2.1.3;
they need to be upgraded to Foo-1.2.2 and Foo-2.1.4 respectively,
without changing X to use Foo-2.1.*.)

More information about the erlang-questions mailing list