Comment by yomlica8

3 years ago

It blows my mind how unresponsive modern tech is, and it frustrates me constantly. What makes it even worse is how unpredictable the lags are so you can't even train yourself around it.

I was watching Halt and Catch Fire and in the first season the engineering team makes a great effort to meet something called the "Doherty Threshold" to keep the responsiveness of the machine so the user doesn't get frustrated and lose interest. I guess that is lost to time!

Even worse is the new trend of web pages optimizing for page load time. You wind up with a page that loads "instantly" but has almost none of the data you need displayed. Instead there are 2 or 3 AJAX requests to load the data & populate the DOM. Each one results in a repaint, wasting CPU and causing the page content to move around.

  • This drives me crazy, especially because it breaks finding within a page. Eg. if you order food and you already know what you want.

    Old days: Cmd + f, type what you want.

    New days: first scroll to the end of the page so that all the contents are actually loaded. Cmd + f, type what you want.

    Is just a list of dishes, some with small thumbnails, some without any images at all. If you can't load a page with 30 dishes fast enough, you have a serious problem (you could always lazily load the thumbnails if you want to cheat).

    • Well, the tech stack is insane: Some virtual machine running a web browser process running a virtual machine for a html renderer which consumes a document declaration language incorporating a scripting language to overcome the document limitations trying to build interactive programs.

      Actually much worse as Microsoft once did with their COM model, ActiveX based on MFC foundation classes with C++ templates, etc.

      And to build those interactive programs somebody is trained to use React, Vue, etc. using their own eco systems of tools. This is operated by a stack of build tools, a stack of distribution tools, kubernetes for hosting and AWS for managing that whole damn thing.

      Oh - and do not talk even about Dependency Management, Monitoring, Microservices, Authorization and so on...

      But I really wonder - what would be more complex?

      Building interactive programs based on HTML or Logo (if anybody does remember)?

      32 replies →

    • > New days: first scroll to the end of the page so that all the contents are actually loaded. Cmd + f, type what you want.

      Only to discover that 2/3 of the matches are invisible text that's put there for $deity knows what reason, and the rest only gives you the subset of what you want, as the UI truncates the list of ingredients/toppings and you need to click or hover over it to see it in full.

    • If you think that’s enraging just wait until you get a page that unloads the previous content as you scroll. You can only search the text that’s visible. Maddening.

    • >If you can't load a page with 30 dishes fast enough, you have a serious problem

      That depends on your scale. If your product is "large enough" it is relatively easy to get into the range of several seconds of response time.

      Here are some of the steps you may want to execute before responding a resquest to your user:

      - Get all the dishes that have the filters the user selected

      - Remove all dishes from restaurants that doen't delivery in the user location

      - Remove all dishes from restaurants that aren't open right now

      - Get all discount campaigns for the user and apply its effects for every dish

      - Reorder the dish list based on the history of the user interactions

      Now imagine that for every step in this list you have, at least, a single team of developers. Add some legacy requirements and a little bit of tech debt... That's it, now you have the perfect stage for a request that takes 5-10 seconds.

      8 replies →

  • There was a small accordion in some Google search results that opened around ~1 second after the results page was loaded and I think it was the most infuriating thing ever. And we are talking about Google here.

    • Their new AI shit on the top of the sesrch results does this. It's slow AF and I'll sometimes have scrolled partway down the page before it farts a huge blob of text up top and pushes stuff I've already scrolled past back down past my finger.

    • My goodness, that accordion needs to removed from their code base immediately.

      A horrific piece of UI/UX/engineering/whatever.

    • I'm sure the person who wrote that accordion is quite good at solving leetcode tho! (only half joking)

  • And when you're about to click on something, something new loads and everything jumps unpredictably and you end up accidentally clicking on the wrong thing lol

    • Yes, in Windows 50% of my day is fighting with something obscuring my view or taking focus. Something pops up just as I was clicking or pressing Enter. I have to sign into multiple systems in the morning and sometimes it takes four attempts to enter creds for one login because I keep getting interrupted. It's infuriating.

      6 replies →

  • > You wind up with a page that loads "instantly" but has almost none of the data you need displayed.

    Which, in my mind, means it didn't load instantly. The page isn't loaded until all of the data is displayed.

  • This is called cumulative layout shift (CLS for short) and there’s a push in web dev to work against and around this - it’s recently become part of the performance measurement of googles lighthouse scoring and server side rendering and static site generation metaframeworks like nextjs and Astro allow you to send out the entire static page HTML without having to lazy load any new data.

  • We also have tech companies that claims sub 300ms request response time is good enough. I wish people look at StackOverflow and understand how they do everything at under 20ms.

    • As a person from New Zealand I am accustomed to every single request taking a minimum of 300ms RTT and sometimes it's shocking when it doesn't.

  • Adjacent but similar, I am so over all of the animations and corporate bullshit on pages. I run a business making decent and super optimized web pages and people love them. They’re the only website in their town and field that doesn’t take 10 seconds to load and render.

  • I could kind of understand things moving around back in the 2000s when we were all getting used to AJAX but all these years later can we (at least) have the main navigation links stay still?

  • > Even worse is the new trend of web pages optimizing for page load time

    I don't disagree with your example, but optimising for page load time is as old as the graphical Web.

  • Even more annoying is when ads pop in a second or so later under the cursor position just before you click, taking you to the ad not what you wanted to click.

  • This is so frustrating. Though I recently come across a rare bread, that I thought stood out on load speed. The BBC of all places. While following the sub disaster I was pleasantly surprised at how quick it always loaded. Nearly always it would load near instant after clicking my bookmark. (Definitely not something that is that common when you live in NZ)

    Not at all what I expected from a news site. They're usually full of crap and dog slow.

    This is the specific URL I experienced this with. Though the whole site seems mostly very quick. https://www.bbc.com/news/live/world-us-canada-65967464

    And this is on a 2017 MBP, which some sites are really slow. Nothing crazy like the new silicon CPUs here either.

  • Google specifically reengineered YT last year to do exactly that! From loading ready to display html with subsequent clicks ajaxing more html to loading 1MB .js library and 400KB of json on first load with every subsequent click requesting anotehr ~400KB of json to be interpreted.

  • jfyi this is not new - we confronted this in 1996 when the web was very young.

This is what happens when you have a leaning tower of abstractions, with each layer being developed with a philosophy of, "it's good enough". Some performance loss is unavoidable when you're adding layers, but that aforementioned attitude of indifference has a multiplicative effect which dramatically increases losses. By the time you get to the endpoint, the losses snowball into something rather ridiculous.

  • Along those lines, I have numerous clients who just want plain Ruby on Rails -- no react front end. They are all business to business, or at least professional users on the end. They just want their data loaded and to work with it.

    Ruby on Rails may not be the poster child for speediness as things get big or complex, but if you aren't fighting the ORM, it's consistently quick from click to data.

    Also, RoR is definitely not dead.

  • Each level of abstraction has its own caching and buffering routines because the underlying layers are slow, and without the ability to make them better, you can only put your own cache on top of it. This helps initially, but in the end, the time goes wasted managing all those caches and buffers at every given layer.

I was just reading this week about someone trying to get their UHK keyboard to launch an application on Windows by producing a sequence of keys starting with the Windows key. They needed to put in a delay to get this to work, and it reminded me of my frustrations launching programs in Windows as the start menu takes its sweet and variable time. Not least because I know the technology has been focused on getting adverts into the start menu.

  • This is partly an OS design issue. There's no deep reason the OS should ever throw away keypresses, but contemporary GUIs have a very weak and flaky notion of focus. Contrast this with mainframe apps where users could learn to go incredibly fast, because keystrokes were buffered per connection and the mainframe would process them serially, so even if you typed faster than the machine could process them it wouldn't matter, no keys were lost.

    • It's not necessarily Windows throwing away keypress events but the order of events system wide not necessarily staying in the expected order or the target for an event not being active at the right time.

      If you activate the start menu with a keypress it's going to grab focus. Before it grabs focus the previous window in focus will get events. The same applies with panels (drawers? I forget Windows' name for them) in the Start Menu. There's a non-zero time between activation and grabbing focus to receive keypress events.

      Everything from animation delays to stupid enumeration bugs can affect a windows not grabbing focus to receive keypress events. Scripting a UI always has challenges with timing like this.

      A mainframe terminal has a single input context. You can fire off a bunch of events quickly because there's no real opportunity for another process (on that terminal) to grab focus and receive those events.

      Note the above doesn't absolve Windows of any stupid performance/UX problems with bad animation timings and general shittiness. Microsoft has been focusing on delivering ads and returning telemetry with Windows instead of fixing UX and performance issues.

      4 replies →

    • Mainframes don't buffer keystrokes at all: rather, they send a screen to the terminal with marked "fields", and then the terminal handles all keystrokes until you press return or one of the attention keys to submit the changes back to the mainframe. Thus, even on a heavily loaded system, typing is instant because the main CPU doesn't get involved at all

      1 reply →

  • Isn't there still the Run dialog, Win+R in newer versions of Windows?

    • MacOS manages to provide an advanced search launcher experience as fast or faster than the run dialog that requires the perfect exe name.

      What’s Microsoft’s excuse? Tired of their incompetence being handwaved and a several decades old jank non-solution being held up as acceptable. MS needs more accountability in their teams.

    • There is, but even that's not perfect. I have this stupid habit where I bring up the NVDA screen reader when I want it by typing Windows+R, typing "nvda", and pressing Enter. (I have low vision, and I use a screen reader sometimes, but not all the time.) I know, I really should use a desktop keyboard shortcut instead. Anyway, it's muscle memory, and I do it automatically, without watching for the Run dialog to appear. Only sometimes, the Run dialog doesn't appear fast enough, and maybe the "n" doesn't make it into that dialog's edit box. Or, on one or two embarrasing occasions, the Run dialog didn't grab focus at all, or at least not until way too late, and a message that just said "nvda" made it into a chat window.

    • Thanks. I had forgot about that because the Windows key by itself was fast enough in Windows 7 that I stopped using Win+R.

    • this is the way.

      but putting delay between events (not keystrokes) is nevertheless a good practice

  • That sounds terrible. Why interact with the start menu at all if you can just start the application itself through the path? That's the kind of abuse that delays things in the first place.

  • Or this new version will just break... I had some nice weeks when the search just didn't work at all... While I was too lazy to restart the computer to fix it...

    Then again, I guess any other OS might break in same way. Like my Debian VM just kinda stops responding to part of the screen sometimes if programs are maximised...

OTOH I recall alt-tabbing full screen games (Warcraft 3 on a single core machine is a specific memory) and then sitting back for a while…

Office suites have never been good, but office suites in like 2005 seemed to stretch systems to the breaking point.

Lots of consumer software has always sucked out of the box, I guess if you are here you were possibly a technically savvy kid at some point, is it possible that you were just more selective about the types of programs you ran when you were using the computer for fun?

  • Most games don't need to change screen resolutions anymore which is the expensive bit since not only do you have to wait for the hardware to settle, you have to throw out basically everything in GPU memory and reset it all

    • Also, having to throw out basically everything in GPU memory is largely a thing of the past in the first place.

      I still have this instinctual reluctance to change screen resolution in a game's setting screen, even though 99% of the time it's an instantaneous thing these days.

      1 reply →

    • > you have to throw out basically everything in GPU memory and reset it all

      This is not an inherent limitation of CPUs but a part of Windows' exclusive fullscreen concept. Just another thing that was simply accepted as the way things are instead of being improved (until exclusive fullscreen went out of style).

  • Full-screen games were a specific issue because they would have full control of the graphics card (GPU multitasking hadn't been invented yet or something). When the game gets focus it has to set up the GPU from scratch.

  • Back then you ran games in proper fullscreen mode, whereas nowadays you run them in windowed mode (even when it's called fullscreen windowed).

    If you get bad performance in a game nowadays it's a good idea to try proper fullscreen. Alt tabbing might be slow, but the game will run better.

  • Old text word processors on my 286/386 back in the late 80s / early 90s, ran just fine. Instant everything. Only thing that was truly slow was the scanner.

    • WordPerfect 5.1 for DOS has entered the chat.

      I have fond memories of that, but basically the editor was a UI into a linked list with a blue screen. So not comparable to what people are being asked to do with Word and 365 today.

      My personal beef with Word is that it struggles so much with long documents. Trying to read, say, a 300 page spec from 3GPP is miserable.

Recently I re-discovered my old collection of mp3s. I copied them to my laptop and started listening (using VLC). It blew me away how pleasant the experience was, particularly the overall responsiveness, navigating from track-to-track, skipping around in a track, stuff like that. I never really noticed the delays from streaming services until they were gone.

  • Spotify’s trick when it first launched is that search and playback was so fast it almost felt like you had all the music in the world on your hard drive.

    Unfortunately I cannot think of a single thing that has gotten better about Spotify since I started using it, and a lot which has gotten worse.

    • Depending on when you started using Spotify, accessibility might have gotten infinitely better. The original Windows app, with its custom GUI toolkit, was completely inaccessible with a screen reader. Then they re-did the UI using Chromium Embedded Framework.

About 20 years ago I was evaluating solutions for reporting to see if we could save money switching from Crystal Reports. One reason we stayed with Crystal was they did something they other report engines did not; they made available for display every page as it was rendered. So for a 400 page report, you could start working with it immediately. It took each engine (with a couple exceptions) about the same time to generate the entire report, but for the other engines, you had to wait until they were done.

There is speed, then there is the perception of speed. Crystal got this right.

I keep harping on Visual Studio, but I learned programming with Borland Turbo Pascal (and later Turbo C/C++) on a 4.77MHz machine with 512k memory. It was orders of magnitude more responsive than VS on my current 16 core 3.5GHz 128GB machine.

The only exceptions are: 1) the actual build, which is faster on the modern machine, but only for a large number of source files and 2) reading and writing files - a floppy disk cannot beat an nvme drive of course.

I’ve been sharing videos like this for a month or two

I have a 2015 MacBook Air I abandoned recently for being so painfully slow to use that I had almost not touched it for months. I have an iPad Air 2 that is basically unusable at this point. Both are 2-3 orders of magnitudes faster than those old computers that work instantly.

But windows and web apps are super slow now too

Think of all the landfills and wasted work hours earning the money needed to fill those landfills. The heavy and rare metals

This is proof that if computers were 10x faster, they would run slower than ours today, because in the past we’ve seen that be true over and over. The software companies will just make heavier and heavier programs and operating systems until we have gained nothing but a significant amount of co2 emissions

  • This is only true as the software industry keeps piling abstractions on top of abstractions, as Moore’s law allows it. But we’re reaching the end of the Moore and already feeling the effects of it, for example Javascript frameworks priding themselves on performance instead of features.

    Give it some time for the industry to finally mature.

  • Aren't those devices also running non-contemporary OSs? I wonder if installing the factory OS would make them seem fast again, albeit at the cost of 8 years of software updates.

We're so glued to our screens now that our threshold for losing interest is far higher. We'll check our phone while waiting for a desktop app to open rather than walking away and finding another activity.

People got too used to the Web - slowly loading stuff - and so began to tolerate native apps also loading slow.

  • And they got too used to receiving updates over the internet (as opposed to buying a CD-ROM), and so began to tolerate software full of bugs.

The first step to solve a problem is to measure it. Do you know of a windows program that can measure the latency of the UI of other windows apps ?

What really drives me mad is the latency of some file selection dialogs for example which can take like 10 seconds.

  • Some file selection dialog (and explorer) issues come down to the anti-virus. I've had folders on an SSD that took a minute (60 seconds!) to load. After I added it to an exclusion list in Defender it loaded in a second.

    Another one that can be slow with file dialogs is that sometimes (maybe it has been fixed now) it will try to query whether a networked drive is around on another computer. If it isn't then the call to it can be blocking your file UI.

    A third problem I've noticed with file selection dialogs and explorer is that the My Computer 'folder' that contains your disks takes a long time to load. Much longer than any sub-folders on any of the drives.

    I think the problem is largely with explorer.exe. If I browse those folders in a web browser the experience is snappy.

  • > What really drives me mad is the latency of some file selection dialogs for example which can take like 10 seconds.

    That's why the obfuscated it and now it takes 30 seconds. (Win 10). Unless you want to save on OneDrive.

Unfortunately for most users of most software, "losing interest" isn't really an option - they need it to do some job or other.

  • I get your point, but "losing interest" can also mean losing flow, because the user got interrupted for five seconds instead of instantly taking the next action in their mental plan.

    When apps have these kinds of interruptions all over the place, that's even worse than just having them at startup.

> What makes it even worse is how unpredictable the lags are so you can't even train yourself around it.

What is worse than that: not being able to predict if inputs will be buffered or dropped during unresponsiveness. I kind of look like an idiot when I keep clicking/typing away on someone else’s computer while things are frozen, thinking “oh, it’ll catch up in a bit”, and then 5 seconds later I have to work harder to fix the chaos: some keystrokes at the beginning made it through, then only every other one, then the next couple hundred got dropped, but the next 100 came through fine, and interspersed everywhere there are bizarre runs of duplicated keys, as if I had held the letter aaaaaaaaaaaaaa down continuously.

Everyone’s mix of hardware, OS, text editor, text editor plugins, etc makes this behavior highly variable, and hard to guess if it makes sense to keep typing or just wait out the frequent 1-5 second lockups.

Trying to meet a specific threshold is part of the problem. The better the development hardware, the earlier that threshold is met in testing, which tends to mean optimization effort falls off a cliff.

Also that threshold is an entire 400ms. We should expect significantly better than that these days.

Reminds me of my hp48 calc, which original system was often .. sluggish, but with enough input buffer and predictability (stack + RPL) meant that it was actually beneficial since it forced you to learn things by heart and anticipate more, and the pauses would serve as thinking time for your brain. A rare kind of slow and laggy turning out to be fun.

Also impressive how our brain is sensitive to all of this.. no matter how impressive a current OS / web browser / jitted js is.. I dearly miss the past eras "behavior".

Android is almost as responsive as things like that. Linux is good, sometimes, windows seems better.

1GB programs are rarely instant but that's usually just the price for very complex functionality if it's too interconnected to load parts of it on demand.

The one I can’t stand is keyboard input lag when a paragraph gets large. Happens in seemingly every app except vim.