Size of programs, in terms of disk, memory, cpu time, and network usage, is bloated by
multiple orders of magnitude by all the confused people who think the only thing that matters is "developer productivity". Maybe 20% is worth sacrificing, maybe 50%, but 100x? 1000x? It all adds up.
One really easy and relevant example, sizes of docker images for running memcached:
vagrant@dockerdev:~$ sudo docker images | grep memcached
memcached latest 0868b36194d3 2 weeks ago 132.2 MB
sylvainlasnier/memcached latest 97a88c3744ef 13 months ago 297.4 MB
ploxiln/memcached 2015-07-08 aa4a87ee2c05 5 months ago 7.453 MB
(that last one is my own, the other two are the two most popular on docker hub).
As another example, a co-worker recently was working with some (out-of-tree) gstreamer plugins, and the most convenient way to do so was with a docker image in which all the major gstreamer dependencies, the latest version of gstreamer, and the out-of-tree plugins were built from source. The offered image was over 10GB and 30 layers, took quite a while to download, and a surprising number of seconds to run. With just a few tweaks it was reduced to 1.1GB and a handful of layers which runs in less than a second. It was just a total lack of care for efficiency that made it 10x less efficient in every way, enough to actually reduce developer productivity.
Size matters.