Which languages with a full runtime and memory management are in the same ballpark? Go, maybe? Obviously these are unimpressive figures for unmanaged languages.
Nim can compile helloworld to 800 Kb (or, with some tricks, to 50 Kb). This includes static linked libc, garbadge collection, nim std/system, and no compression.
To demonstrate the OS's capability and relatively small size, in the late 1990s QNX released a demo image that included the POSIX-compliant QNX 4 OS, a full graphical user interface, graphical text editor, TCP/IP networking, web browser and web server that all fit on a bootable 1.44 MB floppy disk for the 386 PC. https://en.m.wikipedia.org/wiki/QNX
On the one hand, if it's genuinely self-contained (that is, it doesn't expect a .Net runtime to have been preinstalled on the OS), that may well constitute an improvement over previous iterations of C#.
On the other hand, the smallest executable I can find on my system occupies 6K and actually does something useful.
On the third hand (said the octopus), if all we cared about was executable size and efficiency, we'd still all be coding in assembler, or at least C or Forth.
What do they mean by "fully self-contained natively compiled C#"? Some executable that depends on specific update Windows versions and 30 different .net frameworks installed on the system? :D
I might be missing a joke? but they are referring to NativeAOT, aptly named as it compiles a .NET application into a native binary ahead of time (instead of using a JIT.) The benefit being no dependency on the .NET runtime, faster startup time (but slower runtime performance, due to lack of JIT), lower memory footprint, and any other advantage you'd find in Go.
The question is, how good is NativeAOT comparable to a static binary from C++ or Go? As we both know Microsoft has a very poor track record when it comes to static builds / "self-contained" stuff. My question was mostly satire but I still would like to know how "self-containted" are those applications.
Does it effectively output a single binary? Does it create some kind of clusterf*k and awkward packaging formats like other MS solutions such as UWP? Will it actually be deployable to a random fresh install of Debian 12 or Windows 10? What about compatibility with older systems?