<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix"><font face="Tomson Talks">D. Hugh
Redelmeier wrote on 2026-05-31 06:52:<br>
</font></div>
<blockquote type="cite"
cite="mid:587d2dd5-1f93-6f8f-5e7a-022c08b685a9@mimosa.com">
<div class="moz-text-plain" wrap="true" graphical-quote="true"
lang="x-western">
<pre wrap="" class="moz-quote-pre"><font face="Tomson Talks">I assume that the problem is that, by default, Zig binaries are statically
linked. That means that every program carries its own copy of each
library that it uses.
As I understand it, static linking is the default for Rust and Go too.
This strikes me as a terrible idea.</font></pre>
</div>
</blockquote>
<p><font face="Tomson Talks">I'll disagree. A couple reasons:</font></p>
<ol>
<li><font face="Tomson Talks">How else to run two different
versions of an application, each using different library
versions?</font></li>
<li><font face="Tomson Talks">The devs do not want bug reports due
to distro system library incompatibility</font></li>
<li><font face="Tomson Talks">Item #2 is the second most frequent
frustration</font><font face="Tomson Talks"> (as I understand
it)</font><font face="Tomson Talks"> in bug reports after AI
slop bug reports</font></li>
</ol>
<p><font face="Tomson Talks">For system applications, shared
libraries are the way to go, for sure.</font></p>
<p><font face="Tomson Talks"><br>
</font></p>
<blockquote type="cite"
cite="mid:587d2dd5-1f93-6f8f-5e7a-022c08b685a9@mimosa.com">
<div class="moz-text-plain" wrap="true" graphical-quote="true"
lang="x-western">
<pre wrap="" class="moz-quote-pre"><font face="Tomson Talks">- so many programs needing to be rebuilt whenever a bug is fixed in a
library. How do you even find which programs? Whose job is it to find
them?</font></pre>
</div>
</blockquote>
<p><font face="Tomson Talks">The authors.</font></p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:587d2dd5-1f93-6f8f-5e7a-022c08b685a9@mimosa.com">
<div class="moz-text-plain" wrap="true" graphical-quote="true"
lang="x-western">
<pre wrap="" class="moz-quote-pre"><font face="Tomson Talks">Shared libraries have been working well on UNIX since the 1980s. Linux
copied UNIX fairly early on.</font></pre>
</div>
</blockquote>
<p><font face="Tomson Talks">It's not the 1980s any more, we do some
things differently now. For one thing, there's been exponential
growth in software choices where incompatibilities can arise.</font></p>
<p><font face="Tomson Talks"><br>
</font></p>
<blockquote type="cite"
cite="mid:587d2dd5-1f93-6f8f-5e7a-022c08b685a9@mimosa.com">
<div class="moz-text-plain" wrap="true" graphical-quote="true"
lang="x-western">
<pre wrap="" class="moz-quote-pre"><font face="Tomson Talks">I admit that not all libraries should be shared:</font></pre>
</div>
</blockquote>
<font face="Tomson Talks">Oops, I should have read all the way
before replying...</font>
<blockquote type="cite"
cite="mid:587d2dd5-1f93-6f8f-5e7a-022c08b685a9@mimosa.com">
<div class="moz-text-plain" wrap="true" graphical-quote="true"
lang="x-western">
<pre wrap="" class="moz-quote-pre"><font face="Tomson Talks">- if library specifications are mutating rapidly, the advantages of
sharing disappear and the disadvantages multiply. This is most likely
in young libraries: perhaps libraries should graduate to shared when
they are thought to be stable.</font></pre>
</div>
</blockquote>
<p><font face="Tomson Talks">Fully agree. Rust, Go, etc. make sense
to link statically as they're relatively new. Maybe after a
decade, dynamic linking will make more sense here?</font></p>
<p><font face="Tomson Talks"><br>
</font></p>
<blockquote type="cite"
cite="mid:587d2dd5-1f93-6f8f-5e7a-022c08b685a9@mimosa.com">
<div class="moz-text-plain" wrap="true" graphical-quote="true"
lang="x-western">
<pre wrap="" class="moz-quote-pre"><font face="Tomson Talks">- if a library isn't getting monotonically better, your dynamically linked
program may grow new bugs. The more programs share that library, the
sooner such bugs are found and fixed.</font></pre>
</div>
</blockquote>
<p><font face="Tomson Talks">If library X is used by package Y and
package Z, it shouldn't matter how library X is linked?</font></p>
<p><font face="Tomson Talks"><br>
</font></p>
</body>
</html>