←back to thread

837 points turrini | 1 comments | | HN request time: 0.278s | source
Show context
titzer ◴[] No.43971962[source]
I like to point out that since ~1980, computing power has increased about 1000X.

If dynamic array bounds checking cost 5% (narrator: it is far less than that), and we turned it on everywhere, we could have computers that are just a mere 950X faster.

If you went back in time to 1980 and offered the following choice:

I'll give you a computer that runs 950X faster and doesn't have a huge class of memory safety vulnerabilities, and you can debug your programs orders of magnitude more easily, or you can have a computer that runs 1000X faster and software will be just as buggy, or worse, and debugging will be even more of a nightmare.

People would have their minds blown at 950X. You wouldn't even have to offer 1000X. But guess what we chose...

Personally I think the 1000Xers kinda ruined things for the rest of us.

replies(20): >>43971976 #>>43971990 #>>43972050 #>>43972107 #>>43972135 #>>43972158 #>>43972246 #>>43972469 #>>43972619 #>>43972675 #>>43972888 #>>43972915 #>>43973104 #>>43973584 #>>43973716 #>>43974422 #>>43976383 #>>43977351 #>>43978286 #>>43978303 #
_aavaa_ ◴[] No.43972050[source]
Except we've squandered that 1000x not on bounds checking but on countless layers of abstractions and inefficiency.
replies(6): >>43972103 #>>43972130 #>>43972215 #>>43974876 #>>43976159 #>>43983438 #
Gigachad ◴[] No.43972215[source]
Am I taking crazy pills or are programs not nearly as slow as HN comments make them out to be? Almost everything loads instantly on my 2021 MacBook and 2020 iPhone. Every program is incredibly responsive. 5 year old mobile CPUs load modern SPA web apps with no problems.

The only thing I can think of that’s slow is Autodesk Fusion starting up. Not really sure how they made that so bad but everything else seems super snappy.

replies(40): >>43972245 #>>43972248 #>>43972259 #>>43972269 #>>43972273 #>>43972292 #>>43972294 #>>43972349 #>>43972354 #>>43972450 #>>43972466 #>>43972520 #>>43972548 #>>43972605 #>>43972640 #>>43972676 #>>43972867 #>>43972937 #>>43973040 #>>43973065 #>>43973220 #>>43973431 #>>43973492 #>>43973705 #>>43973897 #>>43974192 #>>43974413 #>>43975741 #>>43975999 #>>43976270 #>>43976554 #>>43978315 #>>43978579 #>>43981119 #>>43981143 #>>43981157 #>>43981178 #>>43981196 #>>43983337 #>>43984465 #
tjader ◴[] No.43972294[source]
I just clicked on the network icon next to the clock on a Windows 11 laptop. A gray box appeared immediately, about one second later all the buttons for wifi, bluetooth, etc appeared. Windows is full of situations like this, that require no network calls, but still take over one second to render.
replies(4): >>43973061 #>>43973911 #>>43973999 #>>43975898 #
buzzerbetrayed ◴[] No.43973999[source]
Yep. I suspect GP has just gotten used to this and it is the new “snappy” to them.

I see this all the time with people who have old computers.

“My computer is really fast. I have no need to upgrade”

I press cmd+tab and watch it take 5 seconds to switch to the next window.

That’s a real life interaction I had with my parents in the past month. People just don’t know what they’re missing out on if they aren’t using it daily.

replies(1): >>43974819 #
vel0city ◴[] No.43974819[source]
Yeah, I play around with retro computers all the time. Even with IO devices that are unthinkably performant compared to storage hardware actually common at the time these machines are often dog slow. Just rendering JPEGs can be really slow.

Maybe if you're in a purely text console doing purely text things 100% in memory it can feel snappy. But the moment you do anything graphical or start working on large datasets its so incredibly slow.

I still remember trying to do photo editing on a Pentium II with a massive 64MB of RAM. Or trying to get decent resolutions scans off a scanner with a Pentium III and 128MB of RAM.

replies(2): >>43975298 #>>43977784 #
titzer ◴[] No.43975298[source]
64MB is about the size of (a big) L3 cache. Today's L3 caches have a latency of 3-12ns and throughput measured in hundreds of gigabytes per second. And yet we can't manage to get responsive UIs because of tons of crud.
replies(1): >>43975492 #
vel0city ◴[] No.43975492[source]
My modern machine running a modern OS is still way snappier while actually loading the machine and doing stuff. Sure, if I'm directly on a tty and just running vim on a small file its super fast. The same on my modern machine. Try doing a few things at once or handle some large dataset and see how well it goes.

My older computers would completely lock up when given a large task to do, often for many seconds. Scanning an image would take over the whole machine for like a minute per page! Applying a filter to an image would lock up the machine for several seconds even for a much smaller image a much simpler filter. The computer cannot even play mp3's and have a responsive word processor, if you really want to listen to music while writing a paper you better have it pass through the audio from a CD, much less think about streaming it from some remote location and have a whole encrypted TCP stream and decompression.

These days I can have lots of large tasks running at the same time and still have more responsiveness.

I have fun playing around with retro hardware and old applications, but "fast" and "responsive" are not adjectives I'd use to describe them.

replies(1): >>43984268 #
dijit ◴[] No.43984268[source]
I struggle because everything you're saying is your subjective truth, and mine differs.

Aside from the seminal discussion about text input latency from Dan Luu[0] there's very little we can do to disprove anything right now.

Back in the day asking my computer to "do" something was the thing I always dreaded, I could navigate, click around, use chat programs like IRC/ICQ and so on, and everything was fine, until I opened a program or "did" something that caused the computer to think.

Now it feels like there's no distinction between using a computer and asking it to do something heavy. The fact that I can't hear the harddisk screaming or the fan spin up (and have it be tied to something I asked the computer to do) might be related.

It becomes expectation management at some point, and nominally a "faster computer" in those days meant that those times I asked the computer to do something the computer would finish it's work quicker. Now it's much more about how responsive the machine will be... for a while, until it magically slows down over time again.

[0]: https://danluu.com/input-lag/

replies(1): >>43985308 #
vel0city ◴[] No.43985308[source]
> Back in the day asking my computer to "do" something was the thing I always dreaded, I could navigate, click around, use chat programs like IRC/ICQ and so on, and everything was fine, until I opened a program or "did" something that caused the computer to think.

This is exactly what I'm talking about. When I'm actually using my computer, its orders of magnitude faster. Things where I'd do one click and then practically have to walk away and come back to see if it worked happen in 100ms now. This is the machine being way faster and far more responsive.

Like, OK, some Apple IIe had 30ms latency on a key press compared to 50ms on a Haswell desktop with a decent refresh rate screen or 100ms on some Thinkpad from 2017, assuming these machines aren't doing anything.

But I'm not usually doing nothing when I want to press the key. I've got dozens of other things I want my computer to do. I want it listening for events on a few different chat clients. I want it to have several dozen web pages open. I want it to stream music. I want it to have several different code editors open with linters examining my code. I want it paying attention if I get new mail. I want it syncing directories from this machine to other machines and cloud storage. I want numerous background agents handling tons of different things. Any one of those tasks would cause that Apple IIe to crawl instantly and it doesn't even have the memory to render a tiny corner of my screen.

The computer is orders of magnitude "faster", in that it is doing many times as much work much faster even when it's seemingly just sitting there. Because that's what we expect from our computers these days.

Tell me how fast a button press is when you're on a video call on your Apple IIe while having a code linter run while driving a 4K panel and multiple virtual desktops. How's its Unicode support?

replies(1): >>44003263 #
1. Dylan16807 ◴[] No.44003263[source]
But I can see that all the background stuff is using less than one core. That is not an excuse for bad foreground performance.

The stuff that used to be slow involved hard drive access, but today even when programs don't need to touch the disk they often manage to rack up significant delays. Not to mention how SSDs have 100x less latency than hard drives.

And if unicode support is causing serious delays when I'm only using one block of simple-rendering characters, then the library was designed badly.