<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>jargon &amp;mdash; Nat Knight</title>
    <link>http://natknight.xyz/tag:jargon</link>
    <description>Reflections, diversions, and opinions from a progressive ex-physicist programmer dad with a sore back.</description>
    <pubDate>Sun, 24 May 2026 16:25:08 -0700</pubDate>
    <item>
      <title>Transparent vs Invisible</title>
      <link>http://natknight.xyz/transparent-vs</link>
      <description>&lt;![CDATA[#jargon #semantics&#xA;&#xA;One way that folks talk about &#34;transparency&#34; is as &#34;organizations should share details of their operations with the people they affect&#34; (employees, customers, the public, etc.). This kind of transparency is good! Being able to see things lets people make informed decisions; not being able to hide things prevents bad behaviour.&#xA;&#xA;[transparency-ethics]: https://en.wikipedia.org/wiki/Transparency(behavior)&#xA;&#xA;However, in computer systems transparency tends to mean something like &#34;replacing a component with a different one that has the same interface but a different implementation&#34;. It&#39;s a seductive notion: systems that are designed this way can sometimes have one component change without breaking others, or add capabilities by inserting new components that mesh with what&#39;s already there.&#xA;&#xA;[transparency-hci]: https://en.wikipedia.org/wiki/Transparency(human%E2%80%93computer_interaction)&#xA;&#xA;!--more--&#xA;&#xA;For example:&#xA;&#xA;a database plugin that automatically encrypts data does &#34;transparent encryption&#34; so you can encrypt your data without changing your queries&#xA;&#xA;a network file-system &#34;transparently&#34; replaces file operations with downloads and uploads so you can operate on remote files without changing your code&#xA;&#xA;This kind of design has it&#39;s place (and isn&#39;t the topic of this article), but I don&#39;t think it&#39;s &#34;transparent&#34;. A better word for something that you can&#39;t see is invisible.&#xA;&#xA;I think it feels good to call a design &#34;transparent&#34; because it suggests that it&#39;s elegant and principled, and because the word has some lustre from its more common meaning. Also, calling a design &#34;invisible&#34; makes it seem like someone might be trying to trick you, or at least might be getting too clever for their own good. &#xA;&#xA;I also think that pursuing a &#34;transparent&#34; design can minimize the degree to which these systems are never truly invisible. &#xA;&#xA;adding encryption to a database means the server is doing more work and affects how you can index your data, even if it doesn&#39;t affect your queries&#xA;&#xA;doing file operations over the network is dramatically slower than regular file operations&#xA;&#xA;For this reason I avoid describing computer systems as &#34;transparent&#34; and try to use more specific words like &#34;independent&#34; or &#34;backwards-compatible&#34; instead.&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="http://natknight.xyz/tag:jargon" class="hashtag"><span>#</span><span class="p-category">jargon</span></a> <a href="http://natknight.xyz/tag:semantics" class="hashtag"><span>#</span><span class="p-category">semantics</span></a></p>

<p>One way that folks talk about “transparency” is as “organizations should share details of their operations with the people they affect” (employees, customers, the public, etc.). <a href="https://en.wikipedia.org/wiki/Transparency_(behavior)">This kind of transparency</a> is good! Being able to see things lets people make informed decisions; not being able to hide things prevents bad behaviour.</p>

<p>However, in computer systems <a href="https://en.wikipedia.org/wiki/Transparency_(human%E2%80%93computer_interaction)">transparency</a> tends to mean something like “replacing a component with a different one that has the same interface but a different implementation”. It&#39;s a seductive notion: systems that are designed this way can sometimes have one component change without breaking others, or add capabilities by inserting new components that mesh with what&#39;s already there.</p>



<p>For example:</p>
<ul><li><p>a database plugin that automatically encrypts data does “transparent encryption” so you can encrypt your data without changing your queries</p></li>

<li><p>a network file-system “transparently” replaces file operations with downloads and uploads so you can operate on remote files without changing your code</p></li></ul>

<p>This kind of design has it&#39;s place (and isn&#39;t the topic of this article), but I don&#39;t think it&#39;s “transparent”. A better word for something that you can&#39;t see is <strong>invisible</strong>.</p>

<p>I think it feels good to call a design “transparent” because it suggests that it&#39;s elegant and principled, and because the word has some lustre from its more common meaning. Also, calling a design “invisible” makes it seem like someone might be trying to trick you, or at least might be getting too clever for their own good.</p>

<p>I also think that pursuing a “transparent” design can minimize the degree to which these systems are never truly invisible.</p>
<ul><li><p>adding encryption to a database means the server is doing more work and affects how you can index your data, even if it doesn&#39;t affect your queries</p></li>

<li><p>doing file operations over the network is <em>dramatically</em> slower than regular file operations</p></li></ul>

<p>For this reason I avoid describing computer systems as “transparent” and try to use more specific words like “independent” or “backwards-compatible” instead.</p>
]]></content:encoded>
      <guid>http://natknight.xyz/transparent-vs</guid>
      <pubDate>Fri, 02 Feb 2024 08:00:00 +0000</pubDate>
    </item>
  </channel>
</rss>