I was with you until here
Thanks to the re-rendering model, React needs to tie the state to the component structure
This means that in any other framework I can create the most complex app in the world in a single component and have a performance superior to the equivalent most optimized React code
You agreed with @jovidecroock.com's take, so I suppose you also disagree with yourself here. I get the overall point, but this one taken literally is wrong.
React code is slow for reasons much different to other frameworks. It does not follow that experiences will be the same in other frameworks.
i find the table to be useful in some way because i find both speed and size to be crucial, i have faster internet now but at times i've been in places with spotty coverages and it sucks
helps that smaller libraries are also easier to understand, and i can patch it myself if something is wrong
tbh in practice the amount of times i've had to patch something is pretty low, but i just like that i know exactly what happens behind the scenes, that i have the control to mess around with it rather than covering my eyes
yep, that’s fair, and I can totally see the value in both size and simplicity. I just think speed is the least valuable metric because it’s highly unlikely that that’ll ever be the bottleneck in your code
the problem with the table is that it’s easy to think “I want my app to be fast so I’ll pick the fastest one” when in reality that has little bearing compared to *how* you’re using the framework
if your app makes network requests and renders the responses in lists that’s probably true. i’ve definitely run into framework bottlenecks building eg graphics apps that need to update at 60fps. don’t think picking the fastest benchmarked framework would’ve solved the problem but it might’ve helped!
yeah I mean that's just the wrong tool for the job, you want a game engine-type thing for that. this is microbenchmarks specifically for web frameworks
We’ve seen this a lot at Preact as well. Micro benchmarks tell us something about the algorithmic complexity and efficiency. That part of an application is small, the times you replace 1000 rows is rare.
The framework pushing you into good patterns is a million times more valuable.
A framework can perform bad on replacing 1k rows but what if the one being fast for that also optimised for that. For instance the fast one forces replace for one small row update while the slowe one does not
I am a maintainer on an oss repository where a really bad pattern is still not fixed because a micro benchmark regresses with the fix. Not fixing it means actively delivering worse experiences for users, it’s beyond me how our community lives with these things
The best part about the benchmarks is finding frameworks that push you towards good patterns AND are also super performant so I can spend more time building features and less time looking for regressions
It’s literally testing the performance of rendering an array into a table/list
Do you not have that in your app? I have like 20 of them in a normal app
It’s a big and general enough task to not qualify as a microbenchmark
This one in particular is pretty bad too, some folks spend huge amounts of time trying to inch their particular FW ahead over dozens of PRs.
Optimizing the hell out of a benchmark is a neat skill & the repo owner is clearly ok with it, but it’s so far from representative real-world use cases.
Rendering 1k+ rows at a time is, yes. There's no monitor in the world that could realistically fit 1k rows, most of that is going to be pure waste just for the sake of this microbenchmark.
Not to mention the much sillier tests like swapping or replacing rows in that oversized table.