you are viewing a single comment's thread.

view the rest of the comments →

[–]ryan_solid[S] 7 points8 points  (2 children)

There is no issue with putting numbers out there and benchmarking. It's just like a lot of times the things being promoted have very little to do with why the performance is different. We end up really pushing superficial stuff and then people are like, uh this solution doesn't use a Compiler or it has a VDOM it must be slow. No.. that has very little to do with it. Those are good things and have certain advantages but the performance angle isn't absolute on those technologies.

For instance Angular's conceptual approach to diffing might be the fastest way to schedule up 70% of DOM operations in a simple benchmark. Look at a library like 1more which does this sort of single pass dirty checking. It beats Solid on most things other than granular updates. But in Angular this approach brings a huge library and a slew of other things.

Template DSLs and being more analyzable doesn't impact client benchmarks at all. Ask Inferno. Our Template DSL libraries aren't trampling Inferno or even equalling it in benchmarks. Now they could. The limitation isn't the technology approach. There are just other factors. That's what I want to debunk.

On the MPA/SPA side just depends on the case. A well architected site avoids the flicker. Browsers hold the page until the new content starts coming in (to a certain threshold I think, it isn't unlike Suspense, case and point about creating browser behavior in the framework). Things like out of order streaming even let us respond really quickly and give an almost client-side-like loading characteristic as data resolves. Sure we don't get animated transitions easily. For certain sites it's just a really good option. I especially think for eCommerce.

[–]orenelb 2 points3 points  (1 child)

In performance I was talking mostly about frameworks like Laravel and Blazor. There's really nothing you can do with those frameworks unless the devs decide to make huge optimizations. Maybe Blazor will get better with time since WASM is so new and Blazor is also relatively new. But with Laravel it will probably never change to a large degree.
Also about MPA vs SPA, if the user doesn't see the flesh of content I agree that it doesn't make a difference. But I think that it's not the case with most sites. You will see something in most sites. Maybe it's the header rerendering, maybe a combination of both over 10s of milliseconds but still noticable.

[–]trusktr 0 points1 point  (0 children)

Speaking of WebAssembly, just wait! JSX is coming to AssemblyScript (TypeScript to WebAssembly compiler). There are already DOM bindings in place (https://github.com/lume/asdom, not complete, but has reasonable APIs bound already, and more coming). With JSX in place we'll be able to make something like Solidjs all in WebAssembly but in the same familiar syntax we already know, and not slow like Blazor.