3 ms·
Windows got this mostly right these days, not by design but by convention. Because dependency hell sucks, vendors have started shipping all their shared librari
by skrebbel 8y ago
Windows got this mostly right these days, not by design but by convention. Because dependency hell sucks, vendors have started shipping all their shared libraries and dependencies inside the installer, to simply be extracted into the application directory. This way it's automatically resolved by the relevant LoadLibrary call. Nobody in their right mind would install stuff into Windows\System32 anymore.
Similarly, increasingly many programs now ship an entire VM. Eg Eclipse has shipped with its own JRE for years now. Every Electron app comes bundled with a browser and a JS runtime, Dropbox includes Python and half its battery pack, and so on. Strangely, .NET is the odd one out, still requiring system wide installation. Well, at least it has a good backward compat story.
Sure, this makes installers huge, but nobody really cares about that anymore. Similarly the potential space and cache efficiency savings of two programs sharing the same iconv.dll is just not worth the headache.
Command line "package managers" like https://scoop.sh https://scoop.sh take full advantage of this trend by downloading these installers and not even running them. Instead, scoop just extracts their files into a directory somewhere deep in the homedir (= no admin rights needed) and assumes that said program is fully self-contained. In my opinion, this is lovely.
- AnIdiotOnTheNet 8y agoFor the same reason, it is often relatively straight-forward to make completely portable versions of Windows applications, which is great. Last time Win 10 hosed itself and needed a reinstall, getting most of my workflow going again was a simple matter of creating a new toolbar and pointing it at my portable application folder. It's become my firm opinion that the concept of "installation" of applications is silly, causing far more trouble than it is worth.
- sebazzz 8y ago> Strangely, .NET is the odd one out, still requiring system wide installation. .NET Core allows both system-wide side-by-side and local deployments of the framework. Regarding side-by-side libraries, there is WinSxS