On Thursday, 6 June 2013 at 14:26:51 UTC, Peter Alexander wrote:
Modules are for grouping functions/types that are commonly used
together or have interdependencies, not for grouping things
that are in a similar category (although these things can be
related).
I don't care if levenshteinDistance is a "classic algorithm", I
don't want to have to compile it every time I want to take the
minimum of two numbers. Barely anyone is ever going to use it,
so it should be off in a module on its own.
There's absolutely nothing wrong with having lots of small
modules provided that you don't end up importing the same sets
of modules over and over. There are numerous advantages:
1. Makes it easier to manage dependencies.
1a. reduces compile times.
1b. reduces binary size.
1c. benefits incremental and distributed/parallel compilation.
2. Makes version control easier as more files means merge
conflicts are less likely.
3. Makes it easier to navigate files.
The only downside is that you may occasionally have to import
more modules.
Wise words !