The binary sizes that Nim produces are as usual misrepresented. D and C will blow it out of the water. Here's some D code:
import core.stdc.stdio;
extern(C) void main()
{
printf("Hello, World!\n");
}
Compile with: $ dmd -betterC main.d
$ ls -h main
-rwxrwxr-x 1 user group 8.5K Sep 24 12:39 main