Live data from Hacker News

How might software development have unfolded if CPU speeds were 20x slower?

news.ycombinator.com

31–40 of 161 posts

Re: How might software development have unfolded if CPU speeds were 20x slower?

#31
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.

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've made some things easier at the cost of making other things more obfuscated.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#32
post #19
post #13

I'm not sure I understand the premise, because CPU speeds were 20x slower. Just go back a decade or two. They weren't some halcyon days of bug-free software back then, quite the opposite.

Software wasn't bug-free, but it was responsive.

Windows 3.1 was based on async programming, and wasn't responsive every now and then.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#33

One thing to consider is that the resolution and colour space of your computer's display also depends on available clock speed, so if you reduce that by a factor of 20, you'll also have to reduce the number of pixels in your display by the same factor. So, we'll have worse displays as well as worse compute. As with all else - just look back to computers about 20 years ago, and that'll give you a good idea of what it'…

Don’t ICs have faster internal PLLs than the advertised clock speed? As long as those signals don’t need to move too far.

They could probably figure out a less efficient parallel bus with lots more leads rather than the pixel, line, and frame sync we have now, at least once we moved on from CRTs (I don’t know how those work wrt phosphors). It’d change the cost tradeoffs and mean more chips nearer the display but not really put us back, as long as other components kept up. I.e. pcie line rate is developing much faster than display size/framerate/bandwidth so limiting factor is the panel development and connection standards.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#34
Only 20x? I started my career programming on a mainframe system with a 1MHz memory cycle time (think of this as it's 'clock speed') - it had 3 megabytes of memory and supported 40 timeshare users (on terminals) and batch streams. At one point we upgraded by adding 1.5Mb, it cost $1.25M

Compared to a modern CPU it was maybe 5000x slower, the early Vax systems that Unix ran on were maybe 6 times faster.

People certainly wrote smaller programs, we'd just stopped using cards and carrying more than a box around (1000) was a chore. You spent more time thinking about bugs (compiling was a lot slower, and they went in a queue, you were sharing the machine with others).

But we still got our work done, more thinking and waiting

Re: How might software development have unfolded if CPU speeds were 20x slower?

#35

I write C++ for high-performance Windows desktop applications that are used on a wide variety of form factors. This means that I still optimize a lot of things, such as what happens when a user edits a property in an edit box. How can that edit be minimized? How do I make sure that commands operate in less than a second? How can we hide latency when a long execution time can't be avoided? 99% of the time, optimizatio…

Do you happen to have any pointers or recommendations regarding C++ for desktop applications? Especially towards state-management and user-interaction?

I am primarily doing game development and HPC; I am decently familiar with C++, but desktop UI has been a pain point for me so far. Most GUI tools I write in C++ are using ImGui, or they are written in C#.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#36

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. Windows 95 could do a decently responsive desktop UI on an 80386. Coding was a lot less elegant in one way - C code that retur…

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.

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.

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.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#37
We're definitely prioritizing features and just more applications and use cases over optimization. If CPUs were 20x slower, we'd probably see quite a few of the things that are possible right now. But with a lot more well optimized custom solutions rather than bloated frameworks.

And in some cases, multi-threading would be the only way to do things. Where right now, single-threaded file copy, decompression or draw-calls are largely a thing because it's way easier to do and there is no need to change it outside professional applications.

Also, some things might actually be better than they are right now. Having to wait for pointless animations to finish before a UI element becomes usable should not be a thing. If there was no CPU performance for this kind of nonsense, they wouldn't be there.

Please don't mix clockspeeds with performance. A Athlon™ 5350 from 2014 is >20x slower single threaded than a Core i9-14900K. Yet it's 2 GHz vs. 5.8 GHz. Architecture, Cache and Memory Speed matter A LOT.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#38

One way to answer this question is to look at the software produced when clock speeds were 20x slower. The limitations, and features we had then are a minimum starting point. So I'm thinking around the era of a 486 100mhz machine. We'd have at least that (think mylti-player Doom and Quake era as a starting point.) We had Windows, preemptive multi threading, networks, internet, large hard drives, pretty much the base…

[deleted]

Re: How might software development have unfolded if CPU speeds were 20x slower?

#39

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. Windows 95 could do a decently responsive desktop UI on an 80386. Coding was a lot less elegant in one way - C code that retur…

I do wonder about this often. Are these new UI frameworks iterating upwards towards some unknown featureset archetype, where if given another 10-20 years, the designers will say "Okay, we've reached diminishing feature returns, let's pack it up and optimize"

Or, are we simply re-inventing the wheel each time, where the set of features over the last few decades really haven't change that much or cycles through featureset phases.

Re: How might software development have unfolded if CPU speeds were 20x slower?

#40
post #24
post #19

Earlier quoted context omitted.

Software wasn't bug-free, but it was responsive.

Not all of it was, some of it was very laggy and slow. Indeed the whole OS would frequently freeze up.

Be careful not to mix slow CPUs with not having SSDs. A OS freezing up is almost always because something is broken or because it's waiting for a HDD to spin up.
Post reply on HN