<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>House of Nettles: #computer power and human reason</title>
  <id>https://nex-3.com/tag/computer+power+and+human+reason/</id>
  <link href="https://nex-3.com/tag/computer+power+and+human+reason/feed.xml" rel="self"/>
  <link href="https://nex-3.com/tag/computer+power+and+human+reason/" />
  <updated>2026-08-24T00:06:09Z</updated>
    <entry>
      <title></title>
      <link href="https://nex-3.com/blog/computer-power-and-human-reason/" rel="alternate"/>
      <id>https://nex-3.com/blog/computer-power-and-human-reason/</id>
      <published>2026-08-24T00:06:09Z</published>
      <updated>2026-08-24T00:06:09Z</updated>
      <author><name>Natalie Weizenbaum</name>
          <uri>https://nex-3.com/</uri></author><category term="computer power and human reason" label="computer power and human reason"/><category term="so-called ai" label="so-called ai"/><content type="html">&lt;p&gt;I probably should have read &lt;a href=&#34;https://en.wikipedia.org/wiki/Computer_Power_and_Human_Reason&#34;&gt;&lt;em&gt;Computer Power and Human Reason&lt;/em&gt;&lt;/a&gt; years ago, when
all this hype really started getting going. Honestly I should probably have read
it in college when I was first getting into programming! But the next best time
is now, so I borrowed: my mom&#39;s inscribed copy a few months ago (which to be
fair she has also never read) and got started.&lt;/p&gt;
&lt;p&gt;A lot of the first few chapters is fairly straightforward for anyone who has a
basic grounding in computer science. Weizenbaum&lt;sup class=&#34;footnote-ref&#34;&gt;&lt;a href=&#34;https://nex-3.com/blog/computer-power-and-human-reason/#fn1&#34; id=&#34;fnref1&#34;&gt;[1]&lt;/a&gt;&lt;/sup&gt; is walking an odd line where
he&#39;s trying to explain concepts like &amp;quot;turing machines&amp;quot; and &amp;quot;assembly languages&amp;quot;
to a lay audience without sacrificing either rigor or a relatively academic
tone. I&#39;m curious how well this works for someone who genuinely has no prior
exposure to this material; to me, all of this is review of the basics of the
field, and so ended up feeling a little boring.&lt;/p&gt;
&lt;p&gt;But then I got to this section which blew my socks clean off my feet (emphasis
mine):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The idea that a person can write a program that embodies anything he
&amp;quot;thoroughly understands&amp;quot; is at least equally problematical. Understanding
something always means understanding it at a certain level. An actuary uses
some fairly sophisticated mathematical tools whose fundamentals he almost
certainly doesn&#39;t understand or care anything about. Everyone who makes change
uses arithmetic, but very few people know or care much about the beautiful
axiomatic system on which arithmetic is based. In effect, we all constantly
use subroutines whose input-output behavior we believe we know, but whose
details we need not and rarely do think about. To understand something
sufficiently well to be able to program it for a computer does not mean to
understand it to its ultimate depth. There can be no such ultimate
understanding in practical affairs. &lt;strong&gt;Programming is rather a test of
understanding. In this respect it is like writing; often when we think we
understand something and attempt to write about it, our very act of
composition reveals our lack of understanding even to ourselves.&lt;/strong&gt; Our pen
writes the word &amp;quot;because&amp;quot; and suddenly stops. We thought we understood the
&amp;quot;why&amp;quot; of something, but discover that we don&#39;t. We begin a sentence with
&amp;quot;obviously,&amp;quot; and then see that what we meant to write is not obvious at all.
Sometimes we connect two clauses with the word &amp;quot;therefore,&amp;quot; only to then see
that our chain of reasoning is defective. Programming is like that. It is,
after all, writing too. But in ordinary writing we sometimes obscure our lack
of understanding, our failures in logic, by unwittingly appealing to the
immense flexibility of natural language and to its inherent ambiguity. The
very eloquence that natural language permits sometimes illuminates our words
and seems (falsely, to be sure) to illuminate our undeserving logic just as
brightly. An interpreter of programming-language texts, a computer, is immune
to the seductive influence of mere eloquence. And words like &amp;quot;obviously&amp;quot; are
not represented in the primitive vocabularies of any computers. A computer is
a merciless critic. Therefore the assertion that one understands a thing
sufficiently well to be able to program it is, first of all, an assertion that
one understands it in very particular terms. In any case, it can be no more
than a boast that may well be falsified by experience.&lt;/p&gt;
&lt;p&gt;The other side of the coin is the belief that one cannot program anything
unless one thoroughly understands it. This misses the truth that programming
is, again like any form of writing, more often than not experimental. &lt;strong&gt;One
programs, just as one writes, not because one understands, but in order to
come to understand.&lt;/strong&gt; Programming is an act of design. To write a program is
to legislate the laws for a world one first has to create in imagination. Only
rarely does any designer, be he an architect, a novelist, or whatever, have so
coherent a picture of the world emergent in his imagination that he can
compose its laws without criticism from that world itself. That is precisely
what the computer may provide.&lt;sup class=&#34;footnote-ref&#34;&gt;&lt;a href=&#34;https://nex-3.com/blog/computer-power-and-human-reason/#fn2&#34; id=&#34;fnref2&#34;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It is beyond my capacity to express how strange it was to see &lt;a href=&#34;https://nex-3.com/blog/so-called-ai-cannot-program/&#34;&gt;exactly the same
argument I made&lt;/a&gt; articulated nearly fifty years earlier, without coding LLMs as
a motivating factor, &lt;em&gt;by my own grandfather&lt;/em&gt;. Maybe it&#39;s obvious to anyone who
takes seriously the SICP principle that &amp;quot;computer language [...] is a novel
formal medium for expressing ideas about methodology&amp;quot;, although even that line
was written eight years after &lt;em&gt;Computer Power and Human Reason&lt;/em&gt; and may in fact
have been inspired by it (both works came out of MIT, after all).&lt;/p&gt;
&lt;p&gt;But even if it is obvious, it still strikes me as a shockingly prescient point
to choose to emphasize at a point where automatically converting a vague
high-level natural language description&lt;sup class=&#34;footnote-ref&#34;&gt;&lt;a href=&#34;https://nex-3.com/blog/computer-power-and-human-reason/#fn3&#34; id=&#34;fnref3&#34;&gt;[3]&lt;/a&gt;&lt;/sup&gt; into a full program was still
science fiction. As I argued in my earlier post, the act of programming is
critical to developing a human understanding of the logic being programmed, and
a misunderstanding of this point is critical to the failures that lead people to
believe that LLM-generated code could be useful for anything more than a
band-aid over a gaping lack of suitable abstractions. Weizenbaum made this
point, as far as I&#39;m aware, long before anyone else.&lt;/p&gt;
&lt;hr class=&#34;footnotes-sep&#34;&gt;
&lt;section class=&#34;footnotes&#34;&gt;
&lt;ol class=&#34;footnotes-list&#34;&gt;
&lt;li id=&#34;fn1&#34; class=&#34;footnote-item&#34;&gt;&lt;p&gt;Yes, it &lt;em&gt;is&lt;/em&gt; weird to refer to him this way. &lt;a href=&#34;https://nex-3.com/blog/computer-power-and-human-reason/#fnref1&#34; class=&#34;footnote-backref&#34;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn2&#34; class=&#34;footnote-item&#34;&gt;&lt;p&gt;Weizenbaum, Joseph. &lt;em&gt;Computer Power and Human Reason&lt;/em&gt;. W. H. Freeman and
Company, 1976, pp. 107-109. &lt;a href=&#34;https://nex-3.com/blog/computer-power-and-human-reason/#fnref2&#34; class=&#34;footnote-backref&#34;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn3&#34; class=&#34;footnote-item&#34;&gt;&lt;p&gt;On that subject, Weizenbaum says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[M]any professional programmers believe that their craft is difficult
because the languages with which they must deal have rigid syntactical
rules. There is &amp;gt; therefore a persistent cry for natural-language, e.g.,
English, programming systems. Programmers who hold to this believe have
probably never tackled a truly difficult problem, and have therefore never
felt the need for really deep criticism from the computer.&lt;sup class=&#34;footnote-ref&#34;&gt;&lt;a href=&#34;https://nex-3.com/blog/computer-power-and-human-reason/#fn4&#34; id=&#34;fnref4&#34;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
 &lt;a href=&#34;https://nex-3.com/blog/computer-power-and-human-reason/#fnref3&#34; class=&#34;footnote-backref&#34;&gt;↩︎&lt;/a&gt;&lt;/li&gt;
&lt;li id=&#34;fn4&#34; class=&#34;footnote-item&#34;&gt;&lt;p&gt;&lt;em&gt;Ibid&lt;/em&gt;., 109. &lt;a href=&#34;https://nex-3.com/blog/computer-power-and-human-reason/#fnref4&#34; class=&#34;footnote-backref&#34;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
    </entry>
  
</feed>

