Size of programs, in terms of disk, memory, cpu time, and network usage, is bloated by <i>multiple orders of magnitude</i> by all the confused people who think the only thing that matters is &quot;developer productivity&quot;. Maybe 20% is worth sacrificing, maybe 50%, but 100x? 1000x? It all adds up.<p>One really easy and relevant example, sizes of docker images for running memcached:<p><pre><code>  vagrant@dockerdev:~$ sudo docker images | grep memcached
  memcached                     latest              0868b36194d3        2 weeks ago         132.2 MB
  sylvainlasnier&#x2F;memcached      latest              97a88c3744ef        13 months ago       297.4 MB
  ploxiln&#x2F;memcached             2015-07-08          aa4a87ee2c05        5 months ago        7.453 MB
</code></pre>
(that last one is my own, the other two are the two most popular on docker hub).<p>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.<p>Size matters.