#171 Andy Gocke, .NET Ahead of Time Compilation, Part 1
Andy Gocke, lead of the native AOT and app model team at Microsoft talks about ahead-of-time compilation (AOT) in .NET.
Who he is, what he does. Quick overview of ahead-of-time compilation (AOT); finding your code. Traditional compilation, interpreter vs compiler, translation from source to target languages. Operating systems, intermediate language (IL). There’s always an interpreter. Just-in-time compilation (JIT); Java ran on multiple OSes, but .NET was Windows only; .NET ran on multiple architectures. Ready-to-run (R2R) and trimming. Tiered compilation, variable performance. R2R mixes precompiled and IL, native AOT only has precompiled. Trimming - getting rid of unneeded things, trouble with plugins and reflection; static analysis - don’t ignore warnings. Why AOT was built, where it is a good fit. How much work it was; Core RT, low adoption, but good feedback. Good and bad use cases for AOT. For .NET 7 console apps and libraries, or if you don’t get trim warnings; a single trim warning is too many. AOT and non-AOT OSS NuGet packages. .NET 8 support for ASP.NET. JIT and IL will not go away. AWS Lambda functions and AOT, exclusions, problems that might occur; trimmable all the way down. Getting started with AOT. Can’t turn off trimming. Future of AOT.