<story><title>Software development: should we stop? Maybe we should</title><url>http://blog.spencermounta.in/2020/should-we-stop/index.html</url></story><parent_chain><item><author>madhadron</author><text>There&amp;#x27;s a lot of false premises and a lot of things that don&amp;#x27;t follow in this.&lt;p&gt;&amp;gt; Maybe the most marvellous, utopian idea for software was Unix program design, in the mid-1970s. This is the idea that programs will all talk together via unstructured streams of text.&lt;p&gt;It was a great idea in the 1970&amp;#x27;s. But we had OLE and COM and CORBA and GNOME and KDE and now PowerShell where you can load .NET assemblies and pass around structured objects in the same process. We&amp;#x27;ve had Cocoa which exposed Smalltalk style control of objects in applications since the 1980&amp;#x27;s.&lt;p&gt;This isn&amp;#x27;t a problem of technology. It&amp;#x27;s a problem of incentives. It&amp;#x27;s the same incentives that drive programs to try to look different from each other instead of fitting smoothly into a set of user interface guidelines. It requires a producer of software to find it beneficial to them to fit into the ecosystem around them.&lt;p&gt;&amp;gt; The promise of a computer is to reveal truth, through a seamless flow of information.&lt;p&gt;Seamless flow of information requires connecting the underlying semantic domains. Semantic domains rarely exactly match. Humans use enormous amounts of context and negotiation to construct language games in these situations.&lt;p&gt;&amp;gt; music was around &lt;i&gt;forever&lt;/i&gt; but in the 16th century, if you made music, you made it for god, or the king.&lt;p&gt;This is empirically false. We have records of dance music, of broadside ballads that were sung in the streets, of the music people played at home. And there were lots of student drinking songs about being young and free.&lt;p&gt;I think the real solution to the author&amp;#x27;s angst is to go study the field more broadly and get out of whatever ghetto they are living in.</text></item></parent_chain><comment><author>marta_morena_28</author><text>&amp;gt; This is the idea that programs will all talk together via unstructured streams of text.&lt;p&gt;Curious. To me this is the worst thing you could ever do. Talking via streams to say `cat file.txt | grep ERROR | wc -l`  is cool. But you could do SOOO much more, if programs would actually output structured data streams. You could connect standalone applications much in the same way as Visual Scripting, where you plug inputs and outputs together and mix them with operators (think of Unreal Engine&amp;#x27;s Blueprint, just for command line tooling).&lt;p&gt;It&amp;#x27;s a true shame that Linux did not develop a well defined CLI metaformat that defined exactly what parameters are there, what&amp;#x27;s their documentation, their completion, what outputs does a program produce based on the parameters you provide, etc. You could do true magic with all this information. Right now you kinda still can, but it is very brittle, a lot of work and breaks potentially with each version increment.&lt;p&gt;I think it stems from the design failure to build your app around a CLI. Instead, you should build your app around an API and generate the CLI for that API. Then all properties of structured data streams and auto-explore CLI shells come for free.</text></comment>
<story><title>Software development: should we stop? Maybe we should</title><url>http://blog.spencermounta.in/2020/should-we-stop/index.html</url></story><parent_chain><item><author>madhadron</author><text>There&amp;#x27;s a lot of false premises and a lot of things that don&amp;#x27;t follow in this.&lt;p&gt;&amp;gt; Maybe the most marvellous, utopian idea for software was Unix program design, in the mid-1970s. This is the idea that programs will all talk together via unstructured streams of text.&lt;p&gt;It was a great idea in the 1970&amp;#x27;s. But we had OLE and COM and CORBA and GNOME and KDE and now PowerShell where you can load .NET assemblies and pass around structured objects in the same process. We&amp;#x27;ve had Cocoa which exposed Smalltalk style control of objects in applications since the 1980&amp;#x27;s.&lt;p&gt;This isn&amp;#x27;t a problem of technology. It&amp;#x27;s a problem of incentives. It&amp;#x27;s the same incentives that drive programs to try to look different from each other instead of fitting smoothly into a set of user interface guidelines. It requires a producer of software to find it beneficial to them to fit into the ecosystem around them.&lt;p&gt;&amp;gt; The promise of a computer is to reveal truth, through a seamless flow of information.&lt;p&gt;Seamless flow of information requires connecting the underlying semantic domains. Semantic domains rarely exactly match. Humans use enormous amounts of context and negotiation to construct language games in these situations.&lt;p&gt;&amp;gt; music was around &lt;i&gt;forever&lt;/i&gt; but in the 16th century, if you made music, you made it for god, or the king.&lt;p&gt;This is empirically false. We have records of dance music, of broadside ballads that were sung in the streets, of the music people played at home. And there were lots of student drinking songs about being young and free.&lt;p&gt;I think the real solution to the author&amp;#x27;s angst is to go study the field more broadly and get out of whatever ghetto they are living in.</text></item></parent_chain><comment><author>cgh</author><text>&amp;gt; I think the real solution to the author&amp;#x27;s angst is to go study the field more broadly and get out of whatever ghetto they are living in.&lt;p&gt;He has another post about VS Code where he expresses amazement about its basic refactoring ability. So yeah, fully agree.</text></comment>