[eiffel-users] When 10 * 2 / 5 = 9

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[eiffel-users] When 10 * 2 / 5 = 9

Finnian Reilly
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:
  1. Considerable saving in project disk space.
  2. Much easier to maintain one project than many projects.
  3. The cost in time of adding a new utility, no matter how trivial, is small.
  4. Distribution and installation of the resulting utilities is simpler.
I am seriously thinking of rolling back the changes I made.

You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
Visit this group at https://groups.google.com/group/eiffel-users.
For more options, visit https://groups.google.com/d/optout.