Closed xrkolovos closed 10 months ago
Some work is being done here -> https://medium.com/dailyjs/a-realworld-comparison-of-front-end-frameworks-2020-4e50655fe4c1
Related #21085 #22432
Hi @xrkolovos. Our focus with Blazor is to improve productivity by enabling a full stack .NET development experience. Blazor WebAssembly is currently based on a .NET IL interpreter, so we know it isn't going to win any speed competitions when compared with front end JavaScript frameworks like Angular/React/Vue. We are working to improve Blazor WebAssembly performance for .NET 5, and we plan to provide AoT compilation support in .NET 6 at which point it may make sense for us to revisit doing this kind of comparison benchmarking. If the community is interested in producing these benchmarks sooner, that's also completely reasonable.
Hi @danroth27. You answer is perfectly understood.
I believe that every one that uses blazor sees and understands things that are missing in this technology (like dev experience, hot reload etc). Developers choose if they want to start developing with Blazor by measuring, first what this technology is offering (and it's a lot) together with what is missing. What is missing is answered by your next features timeline. It's clear that there are still things to be done. Every technology needs some years to mature and be feature complete.
It's important though, to help people that takes risks and choose the technologies their colleagues will develop with. In this direction, i think, is important to have more informations in the performance scope. We need to know how much behind blazor is, and what are the expectations. Based on your comment, I hope you will choose wisely when the right time is to start this measurements.
In the end is important to know if Web Assembly UI frameworks can be in the future equal or faster to javascript frameworks? Or they will always be left behind?
@xrkolovos thank you, we use webassembly for making tool show view log, but we found that it may became ui freeze when more than 600 lines. It is so sad, we want your help to solve it. the code and problem show with it: https://github.com/dotnet/aspnetcore/issues/23701
It would be nice to look at the high level approach to create performant rendering of large dynamic data sets. Mobx (state tree) on react is nailing it and would also apply to Blazor. It’s not only performance, but also ease of coding when the number of components and their data rendering dependencies get huge. With a MST style model, it stays simple. The components are ‘pure’ (no state and no NeedsRender logic), and renders are triggered only when really applicable. See the video here https://mobx-state-tree.js.org/concepts/using-react
@danroth27 Would Microsoft ever run Microsoft.com (the public facing & landing pages) on Blazor? This should be the internal benchmark. At this point in time I guess the answer would be no, since there is a 'loading framework time' the end user needs to experience. Awesome for back-end sites, but I would love to see it eventually reach the level of being a contender for serious public facing sites & landing pages also.
I found this benchmark comparison for many frontend frameworks very helpful https://krausest.github.io/js-framework-benchmark/current.html
.NET and ASP.NET have been proudly presenting their performance gains for the past few years, and I think it is one of the big reasons why it has become cooler to use them in the tech community.
I really hope that Blazor can receive the same attention to performance. For example, the krausest benchmark is not kind to Blazor.
@danroth27 Now that .NET 6 has shipped, can you please put this on the roadmap?
We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.
@danroth27 we will be building our own perf infra for missing scenarios, but I don't plan to tackle the "comparison" type of platform ask here. I am willing to even close this. @danroth27 leaving this up to you in case you have a strong argument for this being too important in comparison to some other work we plan to do.
Agreed that we don't have any plans to publish our own performance comparison benchmarks. Folks in the community are of course free to do so.
It would be nice to have performance benchmarks of blazor against
Some scenarios that it would be nice to be inclueded:
What it needs to be measured: