The biggest difference between Windows/macOS and Linux is that you don’t need extra libraries for most programs. There’s the occasional C/C++ runtime (that does get shared whenever possible) and a few proprietary DLLs for things like games and Qt, but the OS itself already contains everything. That’s why Linux/BSD has a wide range of package managers to update system components, while Windows just updates itself as if it’s one big piece of software.
You don’t need to manually specify a version of GnuTLS/BoringSSL/OpenSSL, because every target your application is deployed onto is guaranteed to have a TLS library. You don’t need to bother with picking a GUI library because the SDK provides you with all the GUI controls you need. Sometimes the existing libraries are too old (i.e. when Chrome wants to do modern TLS on old systems) or they’re products you paid (i.e. highly efficient video codecs, compression engines) so you ship them along.
The packaged APIs aren’t always better (dealing with COM can be a real pain) but you probably don’t need anything that isn’t already installed on the most barebones version of the OS.
Tb0n3@sh.itjust.works 1 year ago
Some do, but there absolutely system wide libraries installed from things like dotnet, and included in the system. Just like with Linux though some software was built against an old incompatible library and has to include it, or has its own proprietary ones.
echo64@lemmy.world 1 year ago
You’re presenting it like most libraries an application will use are system libraries, and a few exceptional cases they will bundle a dll. This is absolutely not the case, the vast majority of libraries are bundled.