That is an excellent point, Josef.
Actually, the reason why the external shell startup may be so long
(and module list may be so huge) is that it loads everything needed
for the code instropection (code completion, ...) and variable
explorer features to be available.
For example, for the variable explorer to be able to show images or
plot curves, one must first load Matplotlib (and its dependencies:
PyQt, NumPy, ...). So, yes, doing this every time you open an
interpreter or run a script may be quite long on slow machines.
That is why I've added an option (in Mercurial version of v2.0) to
disable the 'monitor' which is the mechanism used by the external
shell to communicate for code instropection and variable explorer
features. When disabling the monitor, opening a new interpreter or run
a script should be as fast as outside Spyder... but, like outside
Spyder, you won't have variable explorer support.
Furthermore, following your post, I did some code cleaning to avoid
any unnecessary import in the external shell. So basically it should
be faster anyway (with or without the monitor).
Cheers,
Pierre