Hacker News new | ask | show | jobs
by dataflow 1738 days ago
> .NET has always supported AOT via NGEN

I didn't claim otherwise. But AOT != "native".

What makes something "native" is not merely the fact that you compile to machine code. It's one of the main features of native code but far from the only one. Again: there's a reason they came up with ".NET Native" and called it that despite the fact that NGen always did AOT. And there's a reason the Android NDK has an N, unlike its SDK. It actually means something beyond AOT.

You can go against the grain if you want and call them all native apps, telling people they're Wrong On The Internet, but you're just confusing people.

1 comments

What makes an NGEN compiled WinForms .NET application not native on Windows?

Curious to find out, how those people distinguish it from an MFC/ATL or an Win32 one.

It's not just one thing. Just like what distinguishes a human from a chimpanzee isn't just 1 thing.

But see for example https://stackoverflow.com/a/855774

If you still don't like the terminology though, I'm not going to keep arguing. I didn't coin the term. You should go ask Microsoft why they didn't call C# native when NGen was already there. I'm just saying that terminology is already established and you're confusing people by using it differently.

That is one possible interpretation of the term, yes Microsoft does use native/managed to distinguish between environments with GC runtime and those without.

Which isn't what users talk about when arguing about native apps, they don't even know what a GC is.

> Which isn't what users talk about when arguing about native apps, they don't even know what a GC is.

Because I'm sure if you went and asked the vast majority of "users" what a "native app" is, you'd get a coherent answer instead of a blank stare.

Let's lay this matter to rest. You don't like the definition, I get it. It's fine.