NetWasm hace que C# genere binarios Wasm más pequeños que Rust
C# now beats Rust on WASM size
NetWasm es un compilador, runtime y SDK independiente que traduce C# y CIL de .NET directamente a WebAssembly sin arrastrar el CLR de escritorio ni Mono. Para el mismo programa que imprime 42, su componente WASI Preview 2 con recolector de basura preciso pesa 47.798 bytes frente a los 53.635 de Rust 1.95.0 con perfil orientado a tamaño: un 10,9% menos en crudo y un 20,4% menos con Brotli-11. Además, corre benchmarks de asignación más rápido que Mono AOT.
Este es un nuevo plataforma .NET, no el .NET de escritorio comprimido dentro de un sandbox de Wasm. Ese límite es lo que hace posible un C# del tamaño del Wasm nativo.
- sondr3
Es una comparación un poco injusta, el código C# del benchmark aquí también está postprocesado, cosa que ninguno de los otros objetivos hace. Véase este comentario[1] en reddit donde el autor anunció esto en el subreddit /r/dotnet, Rust puede llegar mucho, mucho más bajo. El titular es engañoso en el mejor de los casos y una mentira en el peor, esto es genial pero decir que supera a Rust está muy lejos de la verdad excepto para el benchmark tan estrecho hecho para mostrar esta herramienta.
[1]: https://www.reddit.com/r/dotnet/comments/1x7wsgb/rust_just_l...
- bob1029
Nunca entendí el atractivo de wasm fuera de casos especiales de rendimiento. Ni una sola vez consideramos pasar de Blazor del lado del servidor al modo wasm. Ni una sola vez en más de 5 años surgió el tema. Toda la idea resultó ser una enorme y distractora pérdida de talento de ingeniería. En lugar de perseguir este idealista pipeline de wasm y pelearnos con transportes websocket raros, podríamos haber estado escribiendo el aburrido y viejo cshtml y JavaScript sobre HTTP sin estado.
A menos que estés construyendo una versión web de autocad o premiere, no veo el sentido de involucrarse con esta tecnología.
- weinzierl
Esto es un poco una comparación injusta, ¿no?
Dado que WASM viene con un recolector de basura que C# puede usar mientras que Rust hace toda la gestión de memoria por sí mismo, por supuesto que será más grande.
EDIT: Leyendo más a fondo el OP creo que me equivoco. Aparentemente, en las versiones comparadas, la versión de C# incluye un runtime con recolector de basura.