<story><title>How might software development have unfolded if CPU speeds were 20x slower?</title><text>I was pondering how internet latency seems to be just barely sufficient for a decent fast-paced online multiplayer gaming experience. If human cognition were say, 20x faster relative to the speed of light, we&amp;#x27;d be limited to playing many games only with players from the same city.
More significantly, single-threaded compute performance relative to human cognition would effectively be limited to the equivalent of 300 MHz (6 GHz &amp;#x2F; 20), which I suspect makes it a challenge to run even barebones versions of many modern games.&lt;p&gt;This led me to wondering how software development would have progressed if CPU clock speeds were effectively 20x slower.&lt;p&gt;Might the overall greater pressure for performance have kept us writing lower-level code with more bugs while shipping less features? Or could it actually be that having all the free compute to throw around has comparatively gotten us into trouble, because we&amp;#x27;ve been able to just rapidly prototype and eschew more formal methods and professionalization?</text></story><parent_chain><item><author>josephg</author><text>I saw a talk about tigerbeetle the other day - which is a small, fast database for handling financial transactions that apparenty runs orders of magnitude faster than Postgres. The database binary has no dependencies and compiles to 500kb. Its authors were joking they could distribute it on floppy disks if they wanted.&lt;p&gt;It’s written in Zig, not C. But that style of programming is still available to us if we want it. Even in more modern languages.&lt;p&gt;Honestly I’m really tempted to try to throw together a 90s style fantasy desktop environment and widget library and make some apps for it. There’s something about that era of computing that feels great.</text></item><item><author>red_admiral</author><text>I feel like every time CPU speeds double, someone comes up with a Web UI framework that has twice as much indirection. With 20x slower compute, we might not have UIs that fire off an event and maybe trigger an asynchronous network request every time you type a character in a box, for example.&lt;p&gt;Windows 95 could do a decently responsive desktop UI on an 80386. Coding was a lot less elegant in one way - C code that returns a HWND and all that - but with the number of levels of indirection and abstraction these days, we&amp;#x27;ve made some things easier at the cost of making other things more obfuscated.</text></item></parent_chain><comment><author>laserbeam</author><text>Keep in mind, the thing that matters most for tigerbeetle’s speed is they are domain specific. They know exactly upfront how data looks like. They don’t have to be general purpose.&lt;p&gt;The style of programming does work for general purpose computing, but their requirements enable a significant % of “orders of magnitude faster than postgress”.</text></comment>
<story><title>How might software development have unfolded if CPU speeds were 20x slower?</title><text>I was pondering how internet latency seems to be just barely sufficient for a decent fast-paced online multiplayer gaming experience. If human cognition were say, 20x faster relative to the speed of light, we&amp;#x27;d be limited to playing many games only with players from the same city.
More significantly, single-threaded compute performance relative to human cognition would effectively be limited to the equivalent of 300 MHz (6 GHz &amp;#x2F; 20), which I suspect makes it a challenge to run even barebones versions of many modern games.&lt;p&gt;This led me to wondering how software development would have progressed if CPU clock speeds were effectively 20x slower.&lt;p&gt;Might the overall greater pressure for performance have kept us writing lower-level code with more bugs while shipping less features? Or could it actually be that having all the free compute to throw around has comparatively gotten us into trouble, because we&amp;#x27;ve been able to just rapidly prototype and eschew more formal methods and professionalization?</text></story><parent_chain><item><author>josephg</author><text>I saw a talk about tigerbeetle the other day - which is a small, fast database for handling financial transactions that apparenty runs orders of magnitude faster than Postgres. The database binary has no dependencies and compiles to 500kb. Its authors were joking they could distribute it on floppy disks if they wanted.&lt;p&gt;It’s written in Zig, not C. But that style of programming is still available to us if we want it. Even in more modern languages.&lt;p&gt;Honestly I’m really tempted to try to throw together a 90s style fantasy desktop environment and widget library and make some apps for it. There’s something about that era of computing that feels great.</text></item><item><author>red_admiral</author><text>I feel like every time CPU speeds double, someone comes up with a Web UI framework that has twice as much indirection. With 20x slower compute, we might not have UIs that fire off an event and maybe trigger an asynchronous network request every time you type a character in a box, for example.&lt;p&gt;Windows 95 could do a decently responsive desktop UI on an 80386. Coding was a lot less elegant in one way - C code that returns a HWND and all that - but with the number of levels of indirection and abstraction these days, we&amp;#x27;ve made some things easier at the cost of making other things more obfuscated.</text></item></parent_chain><comment><author>red_admiral</author><text>Back when Java had just introduced Swing to supplement&amp;#x2F;complement AWT, I remember you had a set of components (that you could even style in different ways with themes), a fairly object-oriented approach, and with the open-source MiG layout manager (that still exists today) a powerful way of laying out forms with constraints to adapt to changing screen&amp;#x2F;window&amp;#x2F;font sizes. I feel like UI framework progress from Windows 3.1 to Swing+MiG was much greater than anything I&amp;#x27;ve seen since.</text></comment>