<story><title>The cult of Amiga and SGI, or why workstations matter</title><url>https://peter.czanik.hu/posts/cult-amiga-sgi-workstations-matter/</url></story><parent_chain><item><author>jart</author><text>I don&amp;#x27;t want to come across as disrespectful to my elders but in many ways I feel that certain kinds of nostalgia like this are holding open source back. One of my favorite pieces of software is GNU Make. Having read the codebase, I get the impression that its maintainer might possibly be a similar spirit to the OP. The kind of guy who was there, during the days when computers were a lot more diverse. The kind of guy who still boots up his old Amiga every once in a while, so he can make sure GNU Make still works on the thing, even though the rest of us literally would not be able to purchase one for ourselves even if we wanted it.&lt;p&gt;It&amp;#x27;s a pleasure I respect, but it&amp;#x27;s not something I&amp;#x27;ll ever be able to understand because they&amp;#x27;re longing for platforms that got pruned from the chain of direct causality that led to our current consensus (which I&amp;#x27;d define more as EDVAC -&amp;gt; CTSS -&amp;gt; MULTICS&amp;#x2F;CPM -&amp;gt; SysV&amp;#x2F;DOS&amp;#x2F;x86 =&amp;gt; Windows&amp;#x2F;Mac&amp;#x2F;Linux&amp;#x2F;BSD&amp;#x2F;Android&amp;#x2F;x86&amp;#x2F;ARM).&lt;p&gt;My point is that open source projects still maintain all these #ifdefs to support these unobtainable platforms. Because open source is driven by hobbyism and passion. And people are really passionate about the computers they&amp;#x27;re not allowed to use at their jobs anymore. But all those ifdefs scare and discourage the rest of us.&lt;p&gt;For example, here&amp;#x27;s a change I recently wrote to delete all the VAX&amp;#x2F;OS2&amp;#x2F;DOS&amp;#x2F;Amiga code from GNU Make and it ended up being 201,049 lines of deletions. &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jart&amp;#x2F;cosmopolitan&amp;#x2F;commit&amp;#x2F;10a766ebd07b73404e2926cc6975e49581f98b7d&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jart&amp;#x2F;cosmopolitan&amp;#x2F;commit&amp;#x2F;10a766ebd07b7340...&lt;/a&gt; A lot of what I do with Cosmopolitan Libc is because it breaks my heart how in every single program&amp;#x27;s codebase we see this same pattern, and I feel like it really ought to be abstracted by the C library, since the root problem is all these projects are depending on 12 different C libraries instead of 1.</text></item></parent_chain><comment><author>wzdd</author><text>&amp;gt; I recently wrote to delete all the VAX&amp;#x2F;OS2&amp;#x2F;DOS&amp;#x2F;Amiga code from GNU Make and it ended up being 201,049 lines of deletions.&lt;p&gt;That commit 10a766eb you linked to appears to have significantly more than removal of those architectures -- you also appear to have deleted all the tests, documentation, and support for multiple (human) languages. Of the portions of diff which aren&amp;#x27;t deleted files, many of the deletions seem to be around code reformatting (i.e. they add a line for each line they remove), and removal of includes which your libc doesn&amp;#x27;t need &amp;#x2F; support. I do see that you have removed several #ifdef VMS (and similar) stanzas, but the vast bulk of the changes are either removal of, or modifications to, unrelated files.&lt;p&gt;Although I agree instinctively that we shouldn&amp;#x27;t expect to run the latest version of Make on the VAX in our basement, this diff doesn&amp;#x27;t make that argument very well and IMO borders on disingenous.&lt;p&gt;Or, to put it another way, after looking at your diff, I feel much happier about your hypothetical make-on-Amiga afficionado, because I know that they also care about i18n, documentation, and testing!</text></comment>
<story><title>The cult of Amiga and SGI, or why workstations matter</title><url>https://peter.czanik.hu/posts/cult-amiga-sgi-workstations-matter/</url></story><parent_chain><item><author>jart</author><text>I don&amp;#x27;t want to come across as disrespectful to my elders but in many ways I feel that certain kinds of nostalgia like this are holding open source back. One of my favorite pieces of software is GNU Make. Having read the codebase, I get the impression that its maintainer might possibly be a similar spirit to the OP. The kind of guy who was there, during the days when computers were a lot more diverse. The kind of guy who still boots up his old Amiga every once in a while, so he can make sure GNU Make still works on the thing, even though the rest of us literally would not be able to purchase one for ourselves even if we wanted it.&lt;p&gt;It&amp;#x27;s a pleasure I respect, but it&amp;#x27;s not something I&amp;#x27;ll ever be able to understand because they&amp;#x27;re longing for platforms that got pruned from the chain of direct causality that led to our current consensus (which I&amp;#x27;d define more as EDVAC -&amp;gt; CTSS -&amp;gt; MULTICS&amp;#x2F;CPM -&amp;gt; SysV&amp;#x2F;DOS&amp;#x2F;x86 =&amp;gt; Windows&amp;#x2F;Mac&amp;#x2F;Linux&amp;#x2F;BSD&amp;#x2F;Android&amp;#x2F;x86&amp;#x2F;ARM).&lt;p&gt;My point is that open source projects still maintain all these #ifdefs to support these unobtainable platforms. Because open source is driven by hobbyism and passion. And people are really passionate about the computers they&amp;#x27;re not allowed to use at their jobs anymore. But all those ifdefs scare and discourage the rest of us.&lt;p&gt;For example, here&amp;#x27;s a change I recently wrote to delete all the VAX&amp;#x2F;OS2&amp;#x2F;DOS&amp;#x2F;Amiga code from GNU Make and it ended up being 201,049 lines of deletions. &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jart&amp;#x2F;cosmopolitan&amp;#x2F;commit&amp;#x2F;10a766ebd07b73404e2926cc6975e49581f98b7d&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jart&amp;#x2F;cosmopolitan&amp;#x2F;commit&amp;#x2F;10a766ebd07b7340...&lt;/a&gt; A lot of what I do with Cosmopolitan Libc is because it breaks my heart how in every single program&amp;#x27;s codebase we see this same pattern, and I feel like it really ought to be abstracted by the C library, since the root problem is all these projects are depending on 12 different C libraries instead of 1.</text></item></parent_chain><comment><author>dwidget</author><text>While I agree that having one library could be a good solution, I don&amp;#x27;t think all those #ifdefs are wasted.  There are a lot of legacy tech programs that use systems way older than I ever imagined would still be in use.  There was a minor crisis at for an org I was working at one time where they were going to need to flip a multimillion dollar system because the only source of replacement parts was a hobbyist in his garage and for new gov compliance purposes that guy was going to need to become a cleared contractor supplier...which can be problematic if the person in question is an open source advocate whose main purpose in running this business in retirement is supplying enthusiasts rather than government departments or contractors.&lt;p&gt;I&amp;#x27;m sure some of those systems and ones like it make plenty of use out of those #ifdefs though, and it&amp;#x27;s not just a handful of old fogey enthusiasts cramping everyone elses style.  Established systems can&amp;#x27;t always evolve as fast as the general market.</text></comment>