<story><title>Solve Less General Problems</title><url>https://hacksoflife.blogspot.com/2018/08/solve-less-general-problems.html</url></story><parent_chain><item><author>elvinyung</author><text>The interesting thing is that the programmer&amp;#x27;s tendency to abstract and future-proof their code mirrors the late 19th and early 20th centuries&amp;#x27; high modernism movements, as James C. Scott analyzes in &lt;i&gt;Seeing Like A State&lt;/i&gt; and Michel Foucault discusses in depth in &lt;i&gt;Discipline and Punish&lt;/i&gt; and others.&lt;p&gt;&amp;quot;Modernism&amp;quot; is basically characterized by attempts to predict and control the future, to rationalize and systematize chaos. In the past this was done with things like top-down centrally planned economies and from-scratch redesigns of entire cities (e.g. Le Corbusier&amp;#x27;s Radiant City), even rearchitectures of time itself (the French Revolution decimal time). The same kinds of &amp;quot;grand plans&amp;quot; are repeated in today&amp;#x27;s ambitious software engineering abstractions, which almost never survive contact with reality.</text></item></parent_chain><comment><author>twic</author><text>&amp;gt; The same kinds of &amp;quot;grand plans&amp;quot; are repeated in today&amp;#x27;s ambitious software engineering abstractions, which almost never survive contact with reality.&lt;p&gt;Yonks ago, i was reading an introduction to metaphysics at the same time as an introduction to Smalltalk, and it struck me that the metaphysicians&amp;#x27; pursuit of ontology was quite similar to the Smalltalker&amp;#x27;s construction of their class hierarchy. The crucial difference, it seemed to me, was that the metaphysicians thought they were pursuing a truth that existed beyond them, whereas the Smalltalkers were aware that they were creating something from within them.&lt;p&gt;It&amp;#x27;s very likely that my understanding of one or both sides was wrong. But ever since then, i&amp;#x27;ve always seen the process of abstraction in software as &lt;i&gt;creating something useful&lt;/i&gt; rather than &lt;i&gt;discovering something true&lt;/i&gt;. A consequence of that is being much more willing to throw away abstractions that aren&amp;#x27;t working, but also to accept that it&amp;#x27;s okay for an abstraction to be imperfect, if it&amp;#x27;s still useful.&lt;p&gt;I, probably arrogantly, speculate that metaphysicians would benefit from adopting the Smalltalkers&amp;#x27; worldview.&lt;p&gt;I, perhaps incorrectly, think that the ontologists&amp;#x27; delusion is endemic in the academic functional programming [1] community.&lt;p&gt;[1] Haskell</text></comment>
<story><title>Solve Less General Problems</title><url>https://hacksoflife.blogspot.com/2018/08/solve-less-general-problems.html</url></story><parent_chain><item><author>elvinyung</author><text>The interesting thing is that the programmer&amp;#x27;s tendency to abstract and future-proof their code mirrors the late 19th and early 20th centuries&amp;#x27; high modernism movements, as James C. Scott analyzes in &lt;i&gt;Seeing Like A State&lt;/i&gt; and Michel Foucault discusses in depth in &lt;i&gt;Discipline and Punish&lt;/i&gt; and others.&lt;p&gt;&amp;quot;Modernism&amp;quot; is basically characterized by attempts to predict and control the future, to rationalize and systematize chaos. In the past this was done with things like top-down centrally planned economies and from-scratch redesigns of entire cities (e.g. Le Corbusier&amp;#x27;s Radiant City), even rearchitectures of time itself (the French Revolution decimal time). The same kinds of &amp;quot;grand plans&amp;quot; are repeated in today&amp;#x27;s ambitious software engineering abstractions, which almost never survive contact with reality.</text></item></parent_chain><comment><author>panic</author><text>And if these abstractions do survive contact with reality, it&amp;#x27;s often reality that has to change to adapt to the abstraction.  You find yourself saying, &amp;quot;the computer can&amp;#x27;t do that&amp;quot;, not for any fundamental reason, but because the abstraction wasn&amp;#x27;t designed with that in mind.  The unfortunate users have to change the way they work to match the abstraction.&lt;p&gt;&lt;i&gt;Seeing Like a State&lt;/i&gt; describes a similar situation, where people had to give themselves last names so they could be taxed reliably.  I wonder how many people have had to enter their Facebook name differently for it to be considered a &amp;quot;real name&amp;quot;?  Software that &amp;quot;sees&amp;quot; the world in a particular way is a lot like a state bureaucracy that &amp;quot;sees&amp;quot; the world in a particular way, especially when this software is given power.</text></comment>