Description
In #4898 there is a discussion whether the reduced loading time of the wonderful static compilation work should be an argument to either shrink or expand the Base module.
As it seems to be difficult in general if things can go in to Base or go into a package (i.e. where to draw the line) I would like to propose the following:
- Shrink Base so that the initial load time and memory consumption is even better
- Introduce 4-5 modules forming the "standard library" of Julia.
Whether these standard modules should be automatically loaded is from my perspective only a minor discussion point. More important is that this behavior can be easily changed (e.g. in juliarc)
One concern might be that one cannot rely on what module has been loaded in the users environment. But this can be solved by simply always explicitly importing the standard libs when developing a package. "using StdLib" could be a shortcut to import all standard libraries.
It might make sense to offload the standard modules into packages to make the development flow easier. One could then pull in the standard lib when building Julia.
I have not a concrete proposal for standard modules but "LinAlg" and "Signal" (like scipy.signal) come to my mind.