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...
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 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.
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