I get your point @PHolder , but in reality any user is only likely to have 2 or 3 browsers installed so the replication isn’t so bad.
(not including preinstalled browsers)
My win 7 rig has Vivaldi, Edge beta and Firefox
My Win 10 rig has Vivaldi and Firefox
We already live in a DLL hell. Windows programmers and MS never got their heads around actually sharing libraries so we have a weird patchwork of shared stuff dotted all over the place, which then requires a nightmare wiring system in the background to point everything where it needs to look.
The Amiga OS I always felt had honed the folder structure of an OS to something optimal.
Shared libraries go in the LIBS folder
Shared device drivers go in the DEVS folder
Shared command line tools go in the C folder
System “assigns” can be used to map other folders to those.
Backward compatibility is always the defence for sprawling shared resources across multiple locations in Windows.
I argue that this was always a concern for Amiga programmers too, but they learned to think and code more carefully so new libraries would rarely break compatibility.
Old software almost always makes use of new libs and often gains new features or functionality beyond that which the program author had at the time.
Remember VB100.dll, VB200.dll, VB300.dll etc.
Look at the mess of OpenSSL and the various incompatible branches in use.
Look at the amount of replication in the DirectX folder where monthly variants of files sit alongside each other all with the same functions in.
Look at the layer cake that is the .net libraries with 100s of Megs of replication of older functions.
This is the norm not the exception !
If we had the Amiga model software written for .net 1 would work with any newer version and benefit from any improvements in the functions that may have happened.
As long as all your function names are still the same and do the same job, all works well.
When you rewrite a function and give it a new improved name because you realise you didn’t think forward enough, then remove the old function, you are forced to build a new branch.
The creator of PNG is a good example of a forward thinker.
He realised that over time software may end up with varying PNG support, so planned it in.
No matter how old your PNG decoder is it will always open a PNG made by newer software that has features added later.
eg. you can open a 32 bit PNG with alpha channel in something that did not know about such modern wizardry.
Linux may be a better OS to use multiple versions of Chromium. It could easily keep the bloat down due to being more aware of what is using what.