{ datagubbe }

datagubbe.se » stupid slow

Stupid Slow: The Perceived Speed of Computers

Summer 2024

Computers today are faster than ever. They are faster at crunching numbers, they can handle more I/O and they can produce better quality graphics than anything previously produced. Even a dirt cheap modern microcontroller will run in circles around the home computers I grew up with. And yet, computers today often feel slow.

There's recently been some discussion about why computers feel slow today. Discussions like these return with regular intervals. Sometimes the focus is on bloat and resource glut, sometimes on the fact that despite ample hardware resources, software still runs slowly. The discussion has been going on for a while. One of its most famous installments is Niklaus Wirth's A Plea for Lean Software.

I agree with most of the critique and could easily write a very long and very bitter essay about the state of modern software. But I also think that abstraction is both too useful and too profitable to go away anytime soon. The key is balance, but balance is problematic in itself, because it isn't an absolute. One person's necessity is another person's bloat.

Without delving further into the depths of this discussion - which is much more complex than one might think - I'd like to explore an argument often made about how computers used to feel much faster. That doesn't mean that a Commodore 64 can mine bitcoin at speeds comparable to a modern GPU, but rather that for proportional workloads, computers used to be perceived as much snappier than they presently are.

First of all, is this a reasonable claim? I personally think so. Most of the time computers are faster and better than ever. Most of the time. Sometimes they're very slow, and the problem is that they're stupid slow: there's no rhyme or reason to why they're so abysmal at certain things when they're so fast at others.

Microsoft Teams, for example, will toss around sound and video for massive online meetings like there's no tomorrow, but feels like glue when switching between two different text chats. I can search for messages sent by a multitude of users across a span of several years, but when browsing the results, the UI is like treacle.

Though it might be particularly prevalent in business software from megacorps, stupid slow is everywhere - such as in modern terminal emulators suffering from a capped frame rate. As a software developer, I can of course come up with a number of rationalizations for why things are the way they are. As a user, I'm just perpetually annoyed.

This feeling of perpetual annoyance comes from somewhere, and I believe it's increased over time. Input lag, for example, was something I hardly ever experienced during the 1990s, but it seems to have crept in everywhere since then.

So, are computers less snappy today?

Windows 95: Your Mileage May Vary

Wirth wrote his plea for lean software in February of 1995, a couple of months before Microsoft released Windows 95. At this time, Microsoft had a solid position on the business software market, but their dominance was in no way as certain back then as it is now. In many ways, the roaring success of Windows 95 - along with ever-cheaper PC hardware - was what truly cemented Microsoft as the de facto monopoly in both business and home computing.

I consider Windows 95 to be a watershed moment in more ways than one. It is, to me, what truly introduced the concept of bloat and poor performance to the world of consumer and small business software. Much business computing was, at this time, still taking place in DOS. A single tasking system, virtually unchanged since the early 1980s and mostly running text mode applications, will of course feel snappy - especially on a 486 machine.

Windows 95 was a stark contrast to this. Above all, it's prone to swapping, which is catastrophic on an old mechanical IDE drive. MS-DOS, Amiga, Atari and other older systems never swapped, because they couldn't swap: you either had enough memory, or you didn't.

It's hard to give a fair and unified assessment of the 1990s Windows experience. Many Windows 95 users have fond memories of it. For others, it will probably trigger a desire to assume fetal position and start sobbing uncontrollably. In hindsight, it was a decent desktop environment with a clear and coherent interface design. It was also a massive resource hog. Microsoft themselves recommended a 486 computer with 8 megabytes of RAM, but in reality, even this was a bit optimistic. Just a couple of years later, when Windows 98 was released, the average consumer machine was much better matched to the actual hardware requirements. The same can, honestly, be said for Linux paired with an ever so modest X11 window manager.

Coming from the Amiga, Windows 95 felt like a bad joke even on a Pentium: slow, janky and constantly tormenting the hard drive with page file access. On the other hand, I was very fond of Windows NT 4 on my 333 MHz Pentium II with 64 megs of RAM: with a little bit of know-how and decent hardware specs, it was capable of producing a smooth and snappy experience. Once it had finished booting, of course.

Das Boot

Boot speed is one area where people often point to recent improvements. Indeed, both Windows and most desktop Linux systems have traditionally been slow booters, a trend that continued until relatively recently. It wasn't uncommon to have to wait several minutes for a Windows 95 PC to present a usable desktop.

In preparation for writing this text, I timed the boot process on two of my Linux PCs. One is a Thinkpad from 2022, with an Intel i7 CPU, 32 gigs of RAM and an SSD disk. It takes about 32 seconds to boot Ubuntu not to a usable desktop, but to the graphical login screen. The other is an Ideapad from 2012, with an Intel i5 CPU, 8 gigs of RAM and an SSD disk. It needs 25 seconds to boot Debian, again to the graphical login prompt. That's not bad, especially not considering that the same Ideapad took at least a minute to boot when it was running Windows 8 from a mechanical hard drive.

On the other hand, I also timed my Amiga 600. It's got a 7 MHz 68000 CPU, 2 megs of RAM and a Compact Flash card acting as an IDE hard drive. It takes 17 seconds to cold boot into a fully functional desktop environment. A few seconds may have to be added for this to reflect a mechanical hard drive, but not many - the drive itself usually isn't the bottleneck, but rather the speed of the bus it's sitting on. I still remember timing my 14 MHz A1200 with a spinning IDE drive in 1994. It took around 20 seconds to boot - and that was with a lot of third party utilities being loaded.

Many Amigas were churned around from floppy, which warrants a comparison with this media as well. When using my own custom boot floppy (one with Deluxe Paint and a few other goodies), the Amiga 600 boots to a scaled down but functional desktop in around 30 seconds - still faster than the i7 Thinkpad. Similarly, an old IBM PC/AT cold boots to a DOS prompt in about 30 seconds, including spinning up the old 5.25" hard drive and doing a memory test. (Ironically, it thus boots slower the more RAM you've got.)

I could time my Commodore 64 as well, but that would be rather pointless. Old 8-bit home computers will present a Basic prompt almost immediately after being switched on. Users of Atari's ST line of computers will have a similar experience: their whole OS resided in ROM.

Is it unfair to compare an 8-bit machine or Atari with the system in ROM to a modern computer loading a large and complex OS from disk? Perhaps - but such distinctions don't matter from a user perspective. A modern PC is roughly about a bajillion times faster in every possible way, and they still boot slower than an old home computer.

The Gaming Pitfall

I'm not a gamer, and certainly not a modern one. My experience with games released after roughly 1995 consists mostly of casual PS3 gaming, short snippets seen on Youtube and brief glances over the shoulder of gamer friends. One thing I've noticed, though, is that my memories of game performance are wildly distorted by time. Chances are that if you played Sim City on the Amiga 500, Elite II on the Amiga 1200 or Doom on a 486SX machine, you're going to remember it as being much faster than it actually was. A mix of tempered expectations and excitement about something new has likely erased the low framerate from your mind - at least this has, time and time again, turned out to be the case for me.

Try to find some Youtube footage of 1990s games being played on original hardware. Chances are you'll be unpleasantly surprised. When it comes to pure gaming performance, modern machines are leagues ahead of whatever we grew up with.

Serious Software

Another area where modern computers shine is loading native programs. Even on my 2019 Acer Swift 1 with a Celeron CPU, Gimp, Abiword, GNumeric and Firefox start in, at most, a matter of seconds.

On my Amiga 600, Deluxe Paint takes roughly 12 seconds to load from hard drive. The wait is of course even longer when loading it from floppy. It's not in any way unbearable - but it's a clear win for modern machines.

As for program usage, a machine as cheap as a Raspberry Pi 3B will tackle workloads completely unimaginable on the Amiga. Though it pains me to admit it, even proportional workloads on the Amiga can at times feel sluggish. Deluxe Paint, for example, will happily spend seconds when flood filling a large, complex shape. Working with large brushes can at times feel sticky and cumbersome. Navigating large directories in Workbench - the Amiga's desktop environment - can be excruciatingly slow. Even scrolling text can be a bit of a bore, depending on the program - unlike old PCs, the Amiga doesn't have a hardware text mode. This, however, changes drastically on my Amiga 1200, sporting a 14 MHz 68020 CPU. Unsurprisingly, the roughly doubled speed offers a much smoother experience, which is also why it's my preferred workstation for retro tasks.

One thing that always feels fast, including on the Amiga 600, is task switching and user input. I've never experienced input lag frustration on the Amiga. Multitasking between several complex full screen applications is instantaneous - even when simultaneously replaying a funky tune with large sound samples, including vocals.

Gimp on my Swift 1 does feel snappy, at least for my typical tasks of cropping, scaling and retouching. And Grafx 2, a pixel painter inspired by Deluxe Paint, positively flies. Of course, you'd expect an Amiga-sized workload on a modern PC to be, as my old chemistry teacher was fond of saying when pouring something toxic down the sink, "a fart in outer space".

For my very modest word processing and spreadsheet needs, the Amiga is perfectly comparable to native software on a modern PC. Alas, a lot of PC software today isn't native. Few popular sites or "web apps" (Youtube, Discord, Slack, Twitch, Netflix) feel even remotely snappy on my Swift 1. Many are slow even on the i7 Thinkpad, including ones running locally as Electron incarnations. They often fall into the category of stupid slow, too: It's not video replay that's troublesome on Netflix - it's browsing for something to watch that delivers a janky, choppy, frustrating experience on my Swift 1. Similarly, Slack - a chat program - often makes the Thinkpad's fan spin up when all of three people are having a vigorous plaintext conversation.

It's the Speed, Stupid

Most of the time though, an entry-level laptop from ten years ago can do video editing, 3D graphics, compilation, text processing and everything else we use computers for much faster and much better than any old home computer ever could. It'd be strange if this wasn't the case - clock speeds and memory sizes have increased a hundred- or thousandfold depending on what systems we're comparing.

The big difference, I think, is that home computers never felt stupid slow. Desktop Publishing on an Amiga 600? Please God, no! I've actually tried it. Text reflows are like Chinese water torture. Even handling scalable vector typefaces is such a tedium that Commodore included a tool in AmigaOS for rendering them to fixed size bitmap fonts. Loading a modestly-sized JPEG image? Maybe go grab a cup of coffee.

There's no surprise here, though. These are computationally intensive activities which will really stretch the capacity of a 7 MHz CPU. And while waiting for that JPEG file to load or a large archive to decompress, I could pass the time by playing a few levels of Sokoban on the same machine. The (admittedly primitive) game still felt responsive, because the Amiga wasn't stupid slow.

While Windows 95 surely had the capacity for being slow, it was typically consistently slow. If your computer wasn't up to the task of running it, it was a magnificent dumpster fire. But at least it was a dumpster fire all the time: a not-so-subtle way of telling you to upgrade your machine.

Indeed, why is Teams so slow when switching between two text chats? Why can't my Thinkpad handle a bit of Slack flooding when similar activity was perfectly performant in IRC on my old Amiga 1200? Why is Netflix so crappy at browsing titles when it can replay video perfectly fine even on an aging Celeron machine? Why is a contemporary terminal emulator sluggish and capped at 40 FPS? Why is Youtube slow at loading a list of videos when the actual replay is perfectly fine, and why is text input lagging behind in so many programs?

The answer is, in short, that we're running a lot of bad software. That's frustrating in its own right. What's even more frustrating is that we all know, deep down, that our machines are capable of something else.

Our old home computers felt faster because they were only slow at the things we'd expect them to be slow at. Today, it seems to be other way around.