3 ms·
Who said anything about cloud? I run all my apps on my desktop and access them over tailscale. All web apps and I install on phones as PWAs. Super ergonomic.
by wild_egg 1mo ago
Who said anything about cloud?
I run all my apps on my desktop and access them over tailscale. All web apps and I install on phones as PWAs. Super ergonomic.
As for this:
> Local software runs faster
What? Why? Is this some assumption about network requests?
None of my personal software ever has a loading spinner or lag. If it's designed well, each interaction should fit in a single TCP packet so network round trip is imperceptible.
If your web software is slow, that's a choice you've made. Plenty of slow local software around to balance the scales too.
EDIT: Using local files with a web stack is also easy these days. The only con of web software is lacking that native aspect. But native appearance is rare anyway these days with every company just shipping electron bloatware.
- josephg 1mo ago> Is this some assumption about network requests? No. It’s a claim about the amount of work the computer has to do to show UI. Native programs are simply mmapped into memory then executed. They can start instantly. Web software needs a browser engine. And a JS runtime. And a dom. And - usually - needs to wait for a bunch of network round trips. Tauri - a rust web view wrapper - once bragged that it only needed 25 thousand syscalls to run hello world, vs the 100 thousand that electron needs. I think they’re both totally nuts. Modern computers are fast enough to absorb the necessary performance hit. But why make the UI slow for no reason? With websites, the UI still usually ends up looking kinda bad. You can make much nicer UIs by using native controls. And you have access to more APIs! I made a conference schedule iOS app the other day which integrates with the native iPhone calendar. You star an event and it gets automatically added to your system calendar. Beautiful. The only downside is the native ui frameworks aren’t as good. And they force you to rewrite your app N times for N platforms. But that’s just a tooling problem. I’m a big fan of frameworks like day which let me write once and deploy everywhere, while using system UI components. https://daybrite.dev/ https://daybrite.dev/
- wild_egg 1mo agoAh ok. When I talk about fast I am usually referring to user perception rather than clock cycles spent. Users won't notice 1ms vs 10ms but will notice 100ms or 1000ms. For me, it's a law of diminishing returns thing. I would (and have) hand roll assembly if I want actual speed. But we are talking about personal software. Write once, run everywhere browser's exist with essentially no tooling or complexity or deployment concerns. What does writing everything in rust get me instead that is worth the significant increase in effort and dev time and deployment?
- josephg 1mo ago> Users won't notice 1ms vs 10ms but will notice 100ms or 1000ms. I just don't see any software made with web tech that loads in less than 100ms. Here in Australia, it usually takes longer than that for a single packet to get to the US and back. The Fastmail iOS app is an embedded web app. A fresh launch on my iphone takes about 3 seconds before emails become visible on screen. On my desktop computer, Spotify loads in about 3 seconds. Discord loads in ~12 seconds. These are all packaged web applications, which can store and cache whatever data they want. And we're talking startup times of several seconds. There's also ram usage. I just opened spotify out of curiosity on windows. Spotify - as I understand it - uses the platform native browser. Just being open - not even playing anything - spotify sits at about 650-800mb of ram. The DDR5 ram sticks I have currently cost about $30 AUD per gigabyte. So, spotify is reserving about $20 worth of my ram the whole time its open. I can afford that. But I didn't buy all this ram so spotify engineers could be slobs with it. According to a quick google search, Winamp 2 used 4-10mb. There exist pure native apps which also launch slowly and use a lot of ram. Davinci resolve also takes several seconds to launch. So does intellij. But these are much more complex programs than a music player or chat app. If you're making tiny apps for yourself, I can definitely see the appeal of using web technology from a deployment standpoint. But if it were up to me, we'd port the web's software deployment model to work with native programs. Make native software as good as web dev and cut the browser out of the picture entirely. If ram costs 5x as much, I wanna see my software start using 5x less RAM when it runs. I just don't see that happening in the browser.