Ask HN: When did computers get 'fast enough' for you?
The last time I remember computers being very slow was waiting for C++ compiles in the late-90's/early-00's. Of course C++ compiles could still be slow for people, but I haven't had reason to need to use C++ since because of languages like Java or Go.
We always want faster server software as there can be many users using it at once, but even then an SQL db, indexes, and thoughtfully written queries generally get the job done. I remember there was a time that vertically scaling/federating dbs was almost not enough on bare metal, but add sharding and there's very little that you can't handle unless you're FB/Twitter.
[The slowest things I've run into in the last decade was Spring/Boot startup, and a React front-end where running all the assembly (TypeScript, CSS, images, polyfills, what-have-you) took over 30s to reload a page.]
89 comments
[ 0.29 ms ] story [ 150 ms ] threadIf you're doing anything on the web, a good adblocker makes a big difference.
If you have 'enough' RAM, more doesn't help.
For most tasks, CPUs are wasted most of the time. 2 3Ghz x86-64 cores are good enough not to be noticed on a general desktop.
Latency remains more noticeable than bandwidth at modern levels: the difference between 100Mb/s and 1Gb/s is only noticeable when doing bulk transfers.
All that being said... most of what we use our end-user computers for is wasteful overhead. Too many layers.
Sounds like you haven't spun up a large project recently :) Anything Maven build times are terrible and Go isn't much better once you start bringing in a ton of dependencies and codegen frameworks for stuff like protobuf and dependency injection. Java builds can easily take 30 mins and Go at least 3-4 mins.
Don't even get me started on MacOS Docker IO performance. Every time something gets faster we fill it up with more inefficiency.
I would classify this as self-inflicted as I don't believe there's anything intrinsic to what's going on for it to be as slow as it is, only poor implementation of extensibility or other ideas (maybe JPQL, idk).
I've seen some pretty big projects compile way faster than 3-4 minutes, even with protobufs.
These days most of my work is in Python, with some Terraform and shell scripting thrown in. In 2019 I was working on JVM projects: both Clojure and Kotlin. The JVM build tooling is painful, even on a very powerful machine.
> Don't even get me started on MacOS Docker IO performance.
This seems to have gotten much better for me. It sucked for a while with the introduction of the M1, but it seems to have gotten back to about where it was, even when using x86_64 containers.
I've been playing with aarch64 containers on my personal M1, and they seem to be significantly faster. I'm expecting (and looking forward to) ARM making big inroads into the SaaS hosting arena. It seems like it would have significant benefits in terms of power consumption at the datacenter level, and with more and more developers moving to ARM (via Apple Silicon), it will only get easier to develop for.
No-compromise 3D video rendering would be interesting too. Not game quality - which is very good, in limited ways - but full truly photorealistic render quality at game frame rates.
The slowest tasks I had before were probably live-reloading a React app, which has gone from "takes a few seconds" to "pretty much instant". And compiling a fresh build of an iOS app, which has gone from ~20mins and the my computer lagging slightly while doing other tasks to ~3mins and it performs other tasks perfectly fine while it does it.
It is almost 10x faster (2x faster in single core, 4.5x more cores) so perhaps it shouldn't have been surprising.
I have a separate gaming desktop for gaming and game development.
Crunch through all possible games to figure out if ...
- White always wins
- Black always wins
- Every game ends in a draw
... when the players have enough computing power and all uncertainty is removed from the game.
But there probably won't be a fast enough computer in the foreseeable future.
Maybe someone can mathematically answer the question, but that won't be by exhaustive solving (though it might be work down to a subset of all games that then are solved exhaustively)
I built a P4 box with 15k RPM Seagate Cheetahs at the time, and on Windows XP, everything loaded near instant. Things feel way more bloated nowadays, though everything still loads near instantly, so I think we're roughly even to what we had once threaded processing came out.
This comes from most desktop operating systems being shit at the task of being a desktop operating system. BeOS could do that just fine on a fast-ish Pentium I. Windows and Linux at the time, couldn't do it on hardware twice as powerful (and I don't think either's gotten much better about prioritizing media stability and user input performance)
NUC8i5 was the first time I felt like machines weren't really getting faster year after year. I bought a 4x4 last year just because I assumed things have changed, and don't really notice any difference in day to day usage.
I mean, my $400 crappy laptop can run Factorio flawlessly (because the devs give a fuck about performance), but gets bogged down while scrolling on a webpage. It can run gvim (or Sublime Text or Notepad++) with dozens of plugins as fast as I could wish for, but if I pull up a "modern" IDE, suddenly my computer "can't even". A Logitech mouse using default drivers is smooth as silk, but the moment I set up branded drivers, the computer gives up for several minutes.
It, frankly, makes me pretty sad.
So I’d add web-based or electron-based apps to your “unless” list.
Technical and human-imposed restrictions mean iOS devices tend to be the closest to feeling "fast enough". Desktops are hampered by little always-on utilities being written in fucking Electron and eating a GB+ each while also burning lots of processor cycles while not doing anything. Or feature-weak productivity suites living in the browser and taking 20x the resources of a more-featureful native equivalent from years ago (or well-written, native, modern alternatives). Or bad low-level building blocks leading to e.g. UI freezing, stuttering, or jankiness. Or vendor malware (Windows) doing god knows what.
I've only seen a couple operating systems that seem to give what I'd call enough priority to keeping UI snappy so the user feels like they're really in control and not just begging the OS to give them some time, in competition with their own software. iOS and BeOS... I struggle to think of another. QNX Proton was pretty good but I think that was a side-effect of design decisions made for other reasons, though I guess that still counts. Those would probably struggle to remain so running five different JS + HTML layout engines at the same time, like a modern OS is commonly subjected to. Human-imposed restrictions on iOS are what keeps it from suffering that fate.
However I don't think the bloat has yet overcome the benefits of SSDs, in particular, so things are still overall better than they were in, say, the 90s or early '00s.
Paired with ever increasing RAM usage it'll make my machine obsolete.
On the other hand I'm thankful for the selection of quite efficient applications that still allow me to do most things even with the luxury of a GUI .. to another 14 ^^
The former category has always felt fast to me. Word processing, programming/scripting, number crunching, compiling code, viewing documents, etc.
The latter category is what feels slow even to this day, on high-end hardware.
- OS/software updates that take hours (monstly on Windows/macOS).
- Janky animations that drop frames (Discord "stickers").
- Webpages overloaded with useless JS.
- Horrendously slow backend webservers (technically nothing to do with my computer, but it affects my UX nontheless)
Browsers are the main thing which seem to gobble up resources, specifically memory.
It was the first time the computer was not slowing my workflow. AutoCAD and Turbo Pascal running on a 80286 with a floating point coprocessor and a 50MB HDD.
Previous hardware/software stacks in 8086/Tandy/Osborne/PCjR... were not fast enough.
For programming, the 2 applications where computers aren't quite fast enough is compiling massive C++ projects and getting julia to first plot. I recently lept from having ~6 cores to having ~32 cores, and this has helped with the C++ but not really with julia - I think that's a programming issue.