This Task code, for example doesn't work.
Enum.map(0..10, fn(_) ->
Task.async(fn -> IO.puts("new process") end)
end) |> Task.await_many()
Enum.map(1..10, fn _i ->
spawn(fn -> IO.puts("new process") end)
end)
Also, there are two scenarios: compiling code in the browser and running it, and running precompiled code in the browser. In the latter case more things work, for example the 'game of life' example uses GenServers, Supervisors and Registry:https://popcorn.swmansion.com/game_of_life/
https://github.com/software-mansion/popcorn/tree/main/exampl...
But yes, it's still unstable. Improving the stability is our main focus right now.
Python and Go are not small languages, making users download entire runtimes to do something that can be done fine without them would be a huge shame. The performance problem with web UI is the DOM, not JavaScript.
I'm not sure any of this would be an improvement over what we have now.
The problem with the CDN solution was always that it assumed that everyone would be on a couple versions and that never happens. With success comes more contributors and with more contributors come more point releases and more users who are not on the latest version.
So soon you could have five versions for five sites you visit.
The blazor adoption probably isn't even that bad, but it's hard for MS to shake this stigma since so many people got burned on Silverlight and don't ever want to make the same mistake.
In terms of speed, it's not even close to anything else in JS:
https://krausest.github.io/js-framework-benchmark/current.ht...
- Technical issue with blazor performance or blazor makes perf regressions hard to fix
- blazor technical framework encourages programming style that is bad for perf
- blazor or blazor ecosystem attracts programmers that can't deal with perf issues
WasmGC is supported in all browsers + nodejs now, but its still pretty new. Safari only started shipping it in December last year. I'm not sure if wasmgc is the default build for blazor, or what the status is on it.
Blazor should be able to be good, small and fast. (Maybe even smaller than rust web frameworks.) But I don't know if we're there yet.
edit: found a more concrete statement https://github.com/dotnet/runtime/issues/94420
The blackbox can of course return the state of UI to be rendered/pathced, but that doesnt unlock much (if any) interesting capabilities for amount of overhead it adds
https://github.com/software-mansion/popcorn
Couldn’t find any link to it on the article
Cool thing would be to somehow wire it up to liveview to make it possible to run some parts on the frontend side transparently.
I'm not doing any active development on it right now, but it looked pretty doable when I tried last time.