Recently I noticed a curious thing when I decided to partition the el_toolkit program found in Eiffel-Loop/tool/toolkit into separate projects: one for Eiffel development related utilities, and the other for miscellaneous utilities. I split the code base in roughly the proportion 3:2. After building the finalized executables for each project, one might expect the resulting exe sizes to even vaguely reflect this proportion. But this is not what happened. The original el_toolkit program shrank from approx. 10 mb to 9.1 mb even though it had 2/5 of the original code base, and the new tool with the other 3/5 of the code base is actually smaller, 8.1 mb.
This I see as vindication of the Eiffel-Loop philosophy of packing multiple applications into one using the framework based on the classes EL_MULTI_APPLICATION_ROOT, EL_COMMAND_LINE_SUB_APPLICATION and EL_SUB_APPLICATION. There is absolutely nothing to be gained from making a separate project for each little utility you wish to create. All you are doing is wasting disk space. The combined size of both EIFGENs directories is over half a gigabyte. And this is only the Linux build. Add the Windows build and it's up to 1 Gb. If I had left them as one project the amount of project disk-space required would be only half that. Imagine if I had created a separated project for each little sub-application. The amount of disk-space required would easily reach 30 Gb+.
So a short summary of the advantages of using a multi-application framework like the one in Eiffel-Loop:
Considerable saving in project disk space.
Much easier to maintain one project than many projects.
The cost in time of adding a new utility, no matter how trivial, is small.
Distribution and installation of the resulting utilities is simpler.
I am seriously thinking of rolling back the changes I made.