3 ms·
A big difference is that we do very little on our computers now that is actually local to the machine. A significant percentage of the “stupid slow” actions inv
by MobiusHorizons 2y ago
A big difference is that we do very little on our computers now that is actually local to the machine. A significant percentage of the “stupid slow” actions involve waiting for a server that is usually optimized for throughput not latency if it is optimized at all. A surprising number of server workloads also have high latency disk access even though almost all laptops are running SSDs. I think we could vastly improve the performance of local software if we used the network primarily for syncing data, but operated on it locally.
- hnlmorg 2y ago> I think we could vastly improve the performance of local software if we used the network primarily for syncing data, but operated on it locally. Aside from niche tools like AI, that’s exactly how software works already
- dclowd9901 2y agoI think they mean things like asynchronous updates of backend data that occasionally sync out of band. Most apps I’ve seen will make requests and not act “optimistically” on them, rather wait for the round trip to complete before continuing. I think the reason we don’t see this much is because you have to model your entire app on this (with multiple layers of data state and primitive types that represent sync-able states) and most apps aren’t written with that much forethought.
- stavros 2y agoI don't know what software you're using, but the vast majority of software I use is SPAs (whether they need to or not), and need an internet connection to even load.
- amonith 2y agoBut that's exactly the point of SPAs - they load once and run locally even when changing "pages", syncing just data. It's just like a normal desktop app embedded in the browser page. If they expose the PWA manifest they can also be installed so that they won't require the internet even for the initial load. The old school MPAs were the ones that required the network for every single interaction.
- pjc50 2y agoReddit-style SPAs combine the worst of these features: a large initial load plus every single feature requires network interaction, because all the data is on the server anyway. This type of SPA has invented a new version of "FOUC" as well. Because the data for the front page doesn't come with the page, you get a set of placeholder items rendered.
- amonith 2y agoYeah read-heavy apps shouldn't be SPAs. There's just nothing useful to show or do in there without data. However if a native desktop version of reddit existed it would have exactly the same problem, so it isn't really a tech issue, they just picked the "wrong" approach (probably for DX + talent pool reasons).
- stavros 2y agoPerhaps SPA developers should get this memo, because 95% of SPAs should be MPAs.
- amonith 2y agoCan't argue with that, because most public-facing "apps" are mostly read-only. However after a bunch of years working for a software house I can tell you that there are a lot of "non-user" reasons for choosing SPAs. The ecosystem of all SPAs offers unparalleled developer experience that allows you to create many complex apps really fast and reuse a shitload of components, interactions, animations and whatnot. With basically 0 effort you can also create mobile and desktop apps from the same code. And the talent pool for something like React is a lot bigger and a lot more "UI/UX-friendly" than in whatever "backend-tech" of your choice. I work in .NET and when we recruit devs a lot if not most of them straight up hate frontend or don't care about UI/UX at all so we kind of can't do shit with them alone anyway. It's easier and cheaper to recruit a bunch of React devs. TL;DR: money math works in SPA's favor, users be damned
- stavros 2y ago
- swiftcoder 2y agoSome software, maybe. There's an awful lot of server-side logic in something like Slack, even for presentation-layer concerns that could be purely local.
- amonith 2y agoBlame JS haters. With the resurgence of old school SSR approach like the one enabled with HTMX we will see more of that in the future. Some devs will do a lot not to touch the frontend.
- uticus 2y agoEven if all network activity was cached, modern software has such layered complexity vs older software that I wonder how much things would truly speed up. It's difficult for me to gauge overall effect between network reduction (say, 1% speedup across 50 concurrent and 50 inter-dependent network calls) versus complexity reduction (1% speedup across 5 concurrent + 5 inter-dependent calls).