Follow

If your UI has perceivable lag on interaction, on low-end or old devices, it's broken actually.

I've heard "performance is a feature," but I don't think that goes far enough. Poor performance makes your program inaccessible to people. Maybe classist even. And computers are fast by default; you really have to throw a lot of shit at them for UI to lag. If my brain has time to go "seems like that click didn't register, guess I'll click again," then what are you even doing with those millions and millions of cycles.

Show thread

At my old job we had a cross-platform client written in C++. But to attract/hire more programmers, it was rebuilt using web technology. The result was that it was barely usable on my computer any more. For no reason other than to use a more popular programming language. Who gives a shit. I guess programmers are too spoiled to learn another programming language.

Show thread

Also if you want to get away from C++, I don't think replacing a few hundred thousand lines of it with 30 million lines of it is a good idea.

Show thread

Just because Google does most of the work on Chromium, doesn't mean they'll fix your bug before Friday. I still got to do that, but it took more effort than before.

Show thread

"Performance is a feature" makes it sound like you have to put in work to add this "feature," when in reality it's poor performance that's an anti-feature that you add, either through indifference or incompetence.

Show thread

Programs on my phone are slow enough that I'm always doing tap-tap-tap until the screen actually updates. Some programs don't like that at all.

Show thread
@alva electron is classist? That doesn't sound so unreasonable

@fluffy Yeah, Electron is one obvious example

@alva I know its a 7 year old CPU but I think it still holds up a fair bit.

@alva For a company, the reasoning is straightforward: javascript programmers are cheaper than c++ programmers, and our users will eat the performance difference (whether they want to or not)

@Tak The new chungus had many more programmers eventually. I wonder if it's still cheaper.

@Tak Oh, and it still needed C++ programmers too, since CEF/Chromium and all the core, non-UI functionality is C++ 🤷

@alva Oh wow, it's actually homegrown cef and not just electron? The worst of both worlds…

@Tak Yeah. They hired the author of CEF, too.

@alva geez, I remember that blog post, whining about how they'd let this one C++ dev ruin their hiring pipeline, because none of their applicants knew C++ (well enough?)

@T045T I worked on that transition and I did my best, but it was really hard to keep morale up when I thought it was a terrible decision. -___-

@alva Same, I had the privilege of fixing some things in our cef build (and in our cef interaction layer), and it was uhh … quite an experience

@Tak I had to deal with fun things like the HTML5 drag and drop shit not working at all on OS X, or text with text-shadow CSS looking like garbage on Windows, to name some bugs I still remember. -___-

@Tak The DnD stuff was in its infancy at the time, sure, but it's a good example of how dependencies aren't just someone else's problem.

@alcinnz Programmers at such companies should be given old, low-end hardware to work on.

@alcinnz At Google they can send demanding build jobs to servers anyway, I'm pretty sure. But they should have the same experience using the product as a non-techy, non-wealthy person.

@alva you don't even have to do that. I use nice gear; but my release pipelines include perf testing in resource-constrained VMs, and missing perf objectives is a build error. It's really not hard to build tests that fail for bad performance. @alcinnz

@darrenpmeyer @alcinnz Does that include perceived performace, actual UI tests and such? Very cool if so.

@darrenpmeyer I would love to have tests like "button-widget pressed-state is visible on screen on next event loop after click"
@alcinnz

@alva no, I haven't figured out how to automate at that level; but I do use browser instrumentation to do perf testing for web apps, which is a pretty decent proxy for real-world when I constrain the RAM and CPU and bandwidth

@alcinnz

@alva I feel like this is directed at MDT specifically. or that shit excuse of a deployment too just happens to be my PITA.

@BalooUriza @BalooUriza I don't know what MDT is but almost everything lags on my phone, which is a thousand times faster than an amiga or whatever, yet that managed to respond immediately. 😩
On my laptop it's "only" really Electron/webshit that's like that.

@sidd_harth0_5h4h Any web app that uses React, any desktop app that uses Electron, to name some.

@sidd_harth0_5h4h React is a JavaScript library used by the Mastodon web UI among others. I have to regularly reload Mastodon for it to remain somewhat usable, but it's never particularly responsive on my laptop.

@alva I’d web apps are like this then give me apps over then any day every day

@sidd_harth0_5h4h Yeah, native apps are generally less wasteful. Not counting trash like Electron, used by Discord, Slack, Signal and others.

@sidd_harth0_5h4h It's sluggish as shit, uses lots of memory, and is like a 100 MB download :blobcathappy:

@alva no other way!? Like don’t they tell!??? Because by those standards Signal app on phone, maybe even Facebook app on phone I’d react our election :blobcatknife:

@sidd_harth0_5h4h you can do
strings $(which signal-desktop) | grep -i electron
and see a bunch of electron junk.
Usually it's linked statically so ldd won't show it.

@alva but then the app aren’t having most of the functionality of the web app

Sign in to participate in the conversation
Beach City

Beach City is our private beach-side sanctuary for close friends and awesome folks. We are various flavors of trans, queer, non-binary, polyamorous, disabled, furry, etc.