tikhonj was talking about implementations when he described Go as managed imperative language. Go is compiled to native code in all major implementations. In general, it's extremely easy to determine when people are talking about implementations and when they are talking about the language proper. Implementations are important. The primary implementation shapes the language, the way the standard library is designed and scoped, and seeds the ecosystem surrounding the language. Changing the implementation to a native one after the fact changes very little.
> Additionally C# has control over memory layout via pointers, aligment attributes, marshaling, structs and generics.
This is not true. The level of control you get is extremely limited due to the fact that very few types are values in C#.
> Go is compiled to native code in all major implementations
So is C#, bytecodes are only used as a storage format.
With Microsoft tooling you can JIT at load time, NGEN at installation time, convert to MDIL when uploading to Windows 8 App Store, or convert to pure binary with Bartok in Singularity.
With Mono tooling you can JIT at load time or generate binaries with mono -aot.
With Cosmos OS , it gets compiled to native code.
> This is not true. The level of control you get is extremely limited due to the fact that very few types are values in C#.
Please provide an example where Go compilers offer more control than C# ones.