4 ms·
Free software has a use beyond industrial software containers. I don't think most folks developing on Linux laptops agree with your narrow conception of softwar
by rektide 4y ago
Free software has a use beyond industrial software containers. I don't think most folks developing on Linux laptops agree with your narrow conception of software.
Beyond app delivery there's dozens of different utils folks rely on in their day to day. The new statically compiled world requiring each of these to be well maintained & promptly updated feels like an obvious regression.
- howinteresting 4y agoAgain, there is no alternative. Dynamic linking is an artifact of an antiquated 70s-era programming language. It simply does not and cannot work with modern language features like monomorphization. Linux distros are thankfully moving towards embracing static linking, rather than putting their heads in the sand and pretending that dynamic linking isn't on its last legs.
- PaulDavisThe1st 4y agoWhoa, strong opinions. Dynamic linking on *nix has nothing to do with 70s era programming languages. Did you consider the possibility that the incompatibility between monomorphization (possibly the dumbest term in all of programming) and dynamic linking should perhaps saying something about monomorphization, instead?
- howinteresting 4y ago> Dynamic linking on *nix has nothing to do with 70s era programming languages. Given that dynamic linking as a concept came out of the C world, it has everything to do with them. > Did you consider the possibility that the incompatibility between monomorphization (possibly the dumbest term in all of programming) and dynamic linking should perhaps saying something about monomorphization, instead? Yes, I considered that possibility.
- PaulDavisThe1st 4y agoThe design of dynamic linking on most *nix-ish systems today comes from SunOS in 1988, and doesn't have much to do with C at all other than requiring both the compiler and assembler to know about position-independent code. What elements of dynamic linking do you see as being connected to "70s era programming languages"? > Yes, I considered that possibility. Then I would urge you to reconsider.
- preseinger 4y agodynamic linking is an optimization that is no longer necessary there is no practical downside to a program including all of its dependencies, when evaluated against the alternative of those dependencies being determined at runtime and based on arbitrary state of the host system monomorphization is good, not bad the contents of /usr/lib/whatever should not impact the success or failure of executing a given program
- PaulDavisThe1st 4y agoDynamic linking wasn't an optimization (or at least, it certainly wasn't just an optimization). It allows for things like smaller executable sizes, more shared code in memory, and synchronized security updates. You can, if you want, try the approach of "if you have 384GB of RAM, you don't need to care about these things", and in that sense you're on quicksand with the "just an optimization". Yes, the benefits of sharing library code in memory are reduced by increasing system RAM, but we're seeing from a growing chorus of both developers and users, the "oh, forget all that stupid stuff, we've got bigger faster computers now" isn't going so well. There's also the problem that dynamic loading relies on almost all the same mechanisms as dynamic linking, so you can't get rid of those mechanisms just because your main build process used static linking.
- preseinger 4y agoit allows for all of the things you list, yes, but those things just aren't really valuable compared to the reliable execution of a specific binary, regardless of any specific shared library that may be installed on a host smaller executable sizes, shared code in memory, synchronized security updates, are all basically value-zero, in any modern infrastructure there is no "growing chorus" of developers or users saying otherwise, it is in fact precisely the opposite, statically linked binaries are going extremely well, they are very clearly the future
- preseinger 4y ago> Free software has a use beyond industrial software containers. I don't think most folks developing on Linux laptops agree with your narrow conception of software. the overwhelming majority of software that would ever be built by a system like buck2 is written and deployed in an industrial context the share of software consumers that would use this class of software on personal linux laptops is statistically zero really, the overwhelming majority of installations of distros like fedora or debian or whatever are also in industrial contexts, the model of software lifecycles that their maintainers seem to assume is wildly outdated