Maybe I'm biased (I certainly use powerful-ish machines, so maybe I'm not the target market), but I genuinely can't relate when people on here talk about the web being slow as a category.
Sometimes a heavy web-app like Twitter will be slow on first load, but Mighty wouldn't help with network speed, right?
Slack is slow because it's slow to load actual conversation data; the iOS app is just as slow as the Electron app. This is not UI jank; it's a slow API and/or insufficient prefetching.
Jira is slow because it sucks; I've used native apps that are slow because they suck.
Other than that, I don't have many relevant experiences to point to. I'm sure for people running older machines the picture is different (the state of web engineering as a whole could certainly be improved on several dimensions), but I also doubt people stuck using slow computers can afford to spend $30-$50/month on something like this.
I'm genuinely asking: what things are slow for you? Is it just the fact that the code has to load before it can request the data (or render anything) that makes it feel slow? Or is there genuine sluggishness? What web apps are you using that I'm not?
On my nearly maxed out 16” MBP, on day one, web pages with lots of ads and fonts (typically news sites and content aggregators) were noticeably slow. On my totally maxed out iPhone 8 Plus, same experience day one. Scrolling past one of those dumb sticky videos can cause everything to jump into place, then back out, then back again. Navigating back in history can be so slow just hitting the cache that the previous (now forward entry) page shows up again and blocks rendering of the navigation.
Same with electron apps. VSCode is generally among the best. I currently have 9-10 projects open. If I accidentally trigger a font resize by missing cmd-backspace and hit + instead, I’m sitting around for 1-5 minutes waiting for everything to settle. I’ve even hit bugs where trying something app-wide then reverting hit a very slow race condition and just completely deleted my settings.json. Restart to update can take a couple minutes too, and that’s to restore visible functionality while waiting for the changelog tab to randomly show up.
Slack on iOS isn’t nearly as bad as on macOS. But that’s not Electron. I’m in 8 Slack orgs, not a large number compared to some people I know. Refreshing the window takes long enough I just go take a break.
This is on a machine with 64GB RAM, even when it’s not swapping from a couple Chrome windows.
Alright, so there are several different things here:
> web pages with lots of ads and fonts
Ad blockers are a thing. I use them on every browser (it's even possible to do on iOS). It makes a big difference.
> Scrolling past one of those dumb sticky videos can cause everything to jump into place, then back out, then back again
There are plenty of annoying dark patterns (and simply poor UX) out there being used, but what I'm trying to get at here is specifically the perception of slowness for the web as a platform. UX problems can exist in any software.
> Navigating back in history can be so slow just hitting the cache that the previous (now forward entry) page shows up again and blocks rendering of the navigation
I think you may be misunderstanding here... some sites - especially news sites - use a dark pattern where they override the back button behavior to prevent you from going back (presumably to increase "engagement", or whatever). You could argue the web platform shouldn't let them do this, but that still wouldn't have to do with "slowness" (and wouldn't be solved by the OP).
> I’ve even hit bugs where trying something app-wide then reverting hit a very slow race condition and just completely deleted my settings.json
This just sounds like a logic bug; bugs exist regardless of platform
> If I accidentally trigger a font resize by missing cmd-backspace and hit + instead, I’m sitting around for 1-5 minutes waiting for everything to settle
> Restart to update can take a couple minutes too, and that’s to restore visible functionality while waiting for the changelog tab to randomly show up
This is absolutely insane to me. I just tried changing the font size in a very large VSCode project with 10 files open and it took 1 second to change the font size for the whole app. Killing the entire app (Cmd+Q) and restarting it took 4-5 seconds.
How many files do you have open? Are you using some crazy extensions that could be poorly-written or interacting badly?
> I’m in 8 Slack orgs, not a large number compared to some people I know. Refreshing the window takes long enough I just go take a break.
Again, totally crazy compared to my experience. I just refreshed the full window for the medium-sized org I'm in and it took 2 seconds for the UI to come back, and another 5 seconds to load the conversation text (the latter is pretty bad, but as I noted in my original post, not related to performance of the actual web platform)
> Ad blockers are a thing. I use them on every browser (it's even possible to do on iOS). It makes a big difference.
True. They also break things, which I’m not a fan of for personal use. They also make manual testing of web work less consistent with what normal users experience, which I avoid.
> There are plenty of annoying dark patterns (and simply poor UX) out there being used, but what I'm trying to get at here is specifically the perception of slowness for the web as a platform. UX problems can exist in any software.
What I’m describing though is sites using common patterns having such poor performance that I can literally watch a sequence of state changes take place and categorize them as they happen. Forget the ad experience. Common tech oriented sites linked on HN which make it to the front page will frequently show me three to four layout shifts as their fonts load.
> I think you may be misunderstanding here... some sites - especially news sites - use a dark pattern where they override the back button behavior to prevent you from going back (presumably to increase "engagement", or whatever). You could argue the web platform shouldn't let them do this, but that still wouldn't have to do with "slowness" (and wouldn't be solved by the OP).
This wasn’t some back button hijack, I double checked. It was a slow website meeting what I assume is a race condition in the browser, where the state change on load coincided with my decision to stop waiting. And it happens a lot on iOS Safari on perfectly trustworthy sites.
> This just sounds like a logic bug; bugs exist regardless of platform
Sure, like I said, race condition. But exacerbated by how slowly reverting some mistake might take effect.
> This is absolutely insane to me. I just tried changing the font size in a very large VSCode project with 10 files open and it took 1 second to change the font size for the whole app. Killing the entire app (Cmd+Q) and restarting it took 4-5 seconds.
> How many files do you have open? Are you using some crazy extensions that could be poorly-written or interacting badly?
Like I said I have 9-10 projects open. Assuming I have 10 files open in each (I have more, but that wouldn’t matter if the app we’re using native controls), that’s 9-10 times the same thing you tried. Each instance is its own process pool. But they’re all responding to the same event asynchronously.
> Again, totally crazy compared to my experience. I just refreshed the full window for the medium-sized org I'm in and it took 2 seconds for the UI to come back, and another 5 seconds to load the conversation text (the latter is pretty bad, but as I noted in my original post, not related to performance of the actual web platform)
This is also not comparable to what I described, you refreshed one instance vs my 8. And again this would not be an issue using native controls, which would not be running 8 separate instances.
- - -
You seem pretty focused on defending the web and web technologies in the abstract. I’m not necessarily even disagreeing with that. Although real world usage of web tech is the reason things are so bad that I do experience the performance degradation I describe.
I’m not your typical HN anti-JS zealot. I’m just very disappointed with how bad the common web based product is.
You’re mostly right that it’s not the underlying tech that’s bad but how it’s used. But not totally. It’s the only UI platform I’m aware of that developed a huge resource intensive multiprocess model to work around the fact that common usage routinely blocks shared resources and routinely crashes.
> Slack is slow because it's slow to load actual conversation data; the iOS app is just as slow as the Electron app. This is not UI jank; it's a slow API and/or insufficient prefetching.
This makes no sense to me. On my machine, the desktop Slack client has noticeable input lag and it takes ages to perform any action. Try installing Ripcord and compare them; they are talking to the same API, but Ripcord doesn't make me want to throw my laptop out the window.
But Mighty is not a solution, it is just a band-aid that will perpetuate the problem and make UI developers even more lazy because they can assume their crappy Electron apps are always running on a beefy machine in the cloud.
I've never once experienced input lag on Slack- on mobile or desktop (or laptop). The only thing I notice is a slow initial load and slowness to load conversations when I click between them.
Again, I'm not exactly using ancient computers, but that's been my anecdotal experience. I was working from a MacBook Pro that was 3-4 years old at one point, for what that's worth. Not maxed out, though I'll admit it was probably still not a slouch.
Agree. I also just completely fail to understand what the problem is here.
I have 16 tabs currently open in firefox on my MBP. Everything is snappy.
On my desktop (which to be fair, is very powerful) I have maybe 40 or so tabs, the majority of which never get loaded because they are saved by by the tree-style-tab extension, and I don't visit some of the subtrees often.
Literally the only webapp I use that feels slow any more (after I stopped using Gmail) is Notion, and they know they have perf problems. Like you mentioned, these things are slow (Gmail, Notion, Jira, whatever) because they... suck. Gmail is/was just as awful on my powerful desktop as it is on the laptop. I just don't get what this buys me.
> Slack is slow because it's slow to load actual conversation data; the iOS app is just as slow as the Electron app. This is not UI jank; it's a slow API and/or insufficient prefetching.
That's UI jank on top of network issues. Another commenter mentioned Ripcord, which is a good baseline for how fast Slack or Discord should be.
At least for myself, when I say web is slow as a category - including wider web technologies like Electron - I'm mostly thinking about UI performance. Any time a website takes more than 50-100ms to react to an input event, it's noticeably jarring. If it's consistent, it makes the experience of using that site painful. And unfortunately, this problem is common across the board in everything done with modern web tools and principles.
I commented under another reply, but I've never once experienced actual UI jank/input lag on Slack or Discord. Not once. I don't know what I'm doing differently.
Here's one theory: the web makes it super easy to add lots of little animations to apps. Discord in particular takes lots of advantage of this. Is it possible all the little animations are making things feel slightly less "instant", and being mistaken for input lag? That wouldn't impact typing, but
Having powerful machines would be one thing. I really implore you to try using a low end machine for a while and see how bad the web is. I currently use a 4gb 2015 MacBook Air and i often see Discord and other websites-masquerading-as-apps hogging upwards of 2 gigs of ram which is inexcusable. I can hardly believe that animations would contribute to lag (or perceived lag) especially because we can see a lot of completely native apps that have these "micro-interactions" and still feel fast and responsive.
On the other hand Ripcord, an alternate client for Slack and Discord sits at 50mb of RAM and single digit CPU usage.
Don't use Slack, but I have the same experience with Teams for example. Using it is torture on my desktop (i5-8500 - 6 cores and 32 GB ram). There is very noticeable lag when typing, on the order of one second. When moving the mouse around, all the animations are laggy (they take forever to start).
Of course there are what seem to be caching / network-related issues, like switching between conversations always takes forever. But there are also clearly UI issues, like when I try to scroll up in a newly-opened conversation, it scrolls a bit, waits to load, then it sends me all the way back down again before jumping around to some random position. This happens when there are no new messages in the chat and I only try to scroll a little, not go back days.
And the crown, for me: somehow, the number of letters out of order when I type is through the roof in Teams. It happens practically on every message I send, whereas this basically never happens in Telegram (where I send the same kind of short messages) or when I write long-form emails.
I generally feel the same way and sometimes ask myself if I'm living in the same world as some people. Almost everyone complains about Gmail being slow but I don't find it unbearable. I keep it open in a Firefox tab and use it all the time. I have Slack running natively (well, as native as it can get) and it seems to work fine on both my Linux and macOS machines.
I guess I'm happy as long as the keyboard response is (very) good. The only time I notice real slowdowns are when my actions get out of sync with the system. A slow terminal or text editor drives me insane and is one reason I really can't use VSCode; Sublime Text never makes me wait.
Granted, there are things that are genuinely slow for me and drive me up a wall (ie. most issue tracking) but overall, I'd say that my daily use is pretty good. It's certainly not bad enough that I would offload my browsing to some cloud based system. But like you, I'm probably not the target market here.
Maybe it's been a while since you've used a good native app. Sometimes we forget just how fast computers can be without any of the mountains of abstractions that we've piled on.
Possibly. I guess the "fastest" program I use on a daily basis is Sublime Text, which is native on multiple platforms. I never have a slowdown, even on very large files. It instantly responds to keyboard input, which is a must in a text editor. Basically, it's perfect (for my definition of perfect).
I've seen people say things like "Safari is much faster than Chrome" but I don't really see it. Sure, it can seem a bit quicker on some sites but most of the time I don't really notice it. I do notice things like CPU and energy usage between those two browsers, but I'm mostly plugged into power all day anyway so it doesn't make any practical difference which one I use. Perhaps when I get a new M1 machine (ie. 2021 16" MBP!!) I'll feel differently. Perhaps.
With slack though, it absolutely is UI jank. The interface is an absolute nightmare to use on phones (I'd say deliberately so, to force you to use their app).
That's not the problem that needs to be solved, though.
The web isn't slow because it takes a second longer to load a website. The web is slow because, once loaded, the website takes 100+ ms to react to a click or a keypress. Plenty of popular websites are so far off the mark that they take half a second or more to react!
Mighty will definitely help with network speed. If your link is Max 60 kb per second download and mighty has a 50 megabytes per second download and it's closer to the peers for those sites you visit it's definitely going to load faster and then stream down to you.
I haven't used mighty but I'm basing that on my own experience with similar technology.
I think there's a window of optimal use bracketed by low and high download bandwidth for you. if you're faster than that maybe the only speed up you get is if your machine has a slow CPU. If you're slower than that I suspect that the video streaming they're going to use will produce a lag that will make your experience worse than if you were just loading the site directly.
If mighty wanted to push that lower bound lower, instead of streaming video they might be able to stream changes to the DOM. they could compile a sort of single file version of the page on their server that included all the requests the third party resources and styles in line and then whenever there were changes in the layout we could stream those style or DOM changes down to you. As far as I can tell that's basically the minimum amount of information you need to replicate the experience. that might even help a little bit with machines with slow CPUs I sort of tree shaking styles and resources that are not used.
from this point of view with enough development mighty could be purchased by Google as a sort of deluxe subscription model for chrome with bundled premium subscriptions to various streaming services and so on. From that point of view, the bundling up of content, delivery and medium is not really a novel thing because I think similar things have happened with cable TV magazines and news to some extent.
But for the good point that you make that people at the slow or low speck ends might often not be able to afford that kind of service, that lowest of the low-end might be a real focused niche... say people on airplane Wi-Fi or in remote locations on a satellite link.
but from a purely product marketing and psychological point of view I don't think that a product needs actual technical superiority or real measurable utility to become a big hit. I think it really only needs something that makes people want to use it. mighty could position itself as a sort of luxury upgrade for people with already good specs.
Because from the point of view people who are perhaps already of that successful and wealthy mindset many of them may consider that time is their most valuable asset and the accumulated frustrations and annoyance of waiting for websites to load is something they are prepared to pay a service to get rid of and to provide them and experience which they feel is more in line with their station and their expectations of Life in general.
But you cannot really stream remote browser screen on a 60kvps download.... they recommend on their website that you need 500 mbps or something crazy like that for a low lag.
Sir I disagree. I've gotten away with streaming compressed webp frames of a moderately sized laptop viewport where each frame is between 10 to 34 KB, at a relatively respectable two frames per second. I'm not really joking it's still usable. You can push the frame rate even higher if you're prepared to accept higher compression or lower resolution.
Oh I believe you can ‘stream’ stuff at 2 fps over a 500 kbps line alright, the ‘not serious’ part is how anyone could find that acceptable. Even if all you have is 500 kbps...
If you would use your 2fps streaming browser to read, say, hacker news, every scroll operation would be hideously slow and pull in another ~60KB per second, even though the page data itself is only a few KB and never changes. Your ‘streaming solution’ only makes sense if the total amount of data to fetch for the page itself outweighs the total amount of data for all the frames you need to stream while you are using the page. Which is probably almost never, unless you always look at static single-page applications which continuously pull in data on the backend without presenting anything new at the front end. Highly unlikely.
Your logic is sound, just some experience seems to be missing.
> the ‘not serious’ part is how anyone could find that acceptable
I guess you don't have a beeline on what everyone finds acceptable. That's normal, you can only share your perspective not everybody's.
> every scroll operation would be hideously slow
I guess you haven't experienced it because what you describe is not how it works.
The two frames per second is not streaming a 60 frame per second source down to you at two frames per second it's capturing two frames per second from the source and sending them to you because that's what your bandwidth will permit.
> Your ‘streaming solution’ only makes sense if... Highly unlikely.
Only if the goal is a reduction in bandwidth used viewing the page. There are many other goals were streaming the browser makes a helluvalotta sense.
I get you had this focus on bandwidth because i think it's the main obvious focus of this thread but there's an expanded context in which these things operate. I'm sure you'd appreciate that if you'd experience it.
Sometimes a heavy web-app like Twitter will be slow on first load, but Mighty wouldn't help with network speed, right?
Slack is slow because it's slow to load actual conversation data; the iOS app is just as slow as the Electron app. This is not UI jank; it's a slow API and/or insufficient prefetching.
Jira is slow because it sucks; I've used native apps that are slow because they suck.
Other than that, I don't have many relevant experiences to point to. I'm sure for people running older machines the picture is different (the state of web engineering as a whole could certainly be improved on several dimensions), but I also doubt people stuck using slow computers can afford to spend $30-$50/month on something like this.
I'm genuinely asking: what things are slow for you? Is it just the fact that the code has to load before it can request the data (or render anything) that makes it feel slow? Or is there genuine sluggishness? What web apps are you using that I'm not?