I think the Windows story is becoming more robust by using mostly isolated apps. Very little is shared these days and dll-hell isn&#x27;t really and issue any more.<p>The only shared libraries are things like C++ run times, directX etc which are basically optional OS components since they are also made by Microsoft. Even those are moving towards &quot;isolated deploy&quot; modes where you should ship a .NET runtime as a deployed dependency instead of using a shared prerequisite. This is much more robust but also wasteful and harder to patch of course.<p>&gt; The apps end up around 50 MB or so, not 500 MB to 2 GB.<p>They try to accomplish much less and of course have fewer enormous apps dragging the average up (try the latest doom at 50GB!). The average app sizes should be counted relative to the average device space. A desktop system has 200-2000GB and a mobile device 16-128GB so around one order of magnitude is a reasonable difference.