微软研究院的 Austin Z. Henley 对如今铺天盖地的类型推断提出质疑:Go、Rust、Swift、Zig 乃至后来的 C++11/C#3/Java10 都内置或后加了它,但几乎没有证据表明它能提升理解,反而可能妨碍理解、增加认知负荷。他指出读代码时常需要知道每个表达式的类型,可一旦用了 var/推断,遇到没有好名字的赋值就得跳去函数声明看返回类型、最坏还会做出错误假设——他给的例子里 `new Lazy<T>(() => MapEngine.CreateMap(...))` 就根本不是你以为的类型。IDE 悬停提示虽然能救场,但那本身也是一种认知成本;何况离开编辑器、在 GitHub 上看代码时你什么都没有。微软自己的立场也在变:自 2017 年起 Visual Studio 会建议「用显式类型替代 var」,MSDN 也主张用显式类型提升可读性、只在匿名类型上保留推断。他呼吁语言设计者在把类型推断当默认之前先做实证研究——这正是他正在做的 Knox 语言动机:宁可显式,不要简洁。