从对标 Java 到对标 Go:Native AOT 的”无痛化”之路,走到哪一站了? – 张善友
从 .NET 7 的 demo 到 .NET 12 的无痛化,这条路要走五年。慢吗?慢。但对比一下:Java 的 GraalVM Native Image 折腾了更久,至今 Spring 生态的 AOT 体验仍在打补丁;Go 则是天生就站在终点线上——.NET 是在背着二十年的反射遗产追赶一个轻装上阵的对手 .NET 11 RC1 发布在即。借这个时间点,聊聊 .NET 憋了四年的一招——Native AOT,以及它为什么直到今天才接近”能用得好”。 一句话回顾:.NET 的对手换了 在 .NET 8 之前,.NET 对标的从来都是 Java:JVM 对 CLR,Maven 对 NuGet,Spring 对 ASP.NET Core——大家都是”虚拟机 + 大厂企业级”的路数,比的是生态厚度、LTS 策略和工具链。 但 Go 走了另一条路:编译期直接出原生机器码,单文件部署、毫秒级启动、几十兆内存跑一个服务。在容器和 Serverless 时代,这套打法刀刀砍在 JVM/CLR 系语言的软肋上——你还在等 JIT 预热,人家的容器已经弹起来又缩回去了。 .NET […]