《我明白了一些事情》网页链接https://yinwang1.substack.com/p/b0b
我明白了一些事情。
很多人之前听不进我说 Haskell,Ocaml 等语言的缺点,迷信这类语言。他们从来没有实现过编程语言,也没实现过类型系统,所以他们看到所谓的“类型推导”,就开始迷信。他们认为这是高大上的,神才能做出来的东西。
现在因为同样的原因,他们迷信 Rust 语言。因为 Rust 设计了一个类型系统,可以检查 smart pointer 的使用是正确的。Rust 的所谓「所有权」和「Rc」,跟 C++ 的 smart pointer(unique_ptr, shared_ptr) 本质是完全一样的,只不过加了一个类型系统来检查它们的使用而已。我也实现过这样的类型系统,而且不到一天就写出来了。真的没什么大不了的。
我实现过不计其数的编程语言特性,各种各样的类型系统(有些是人们从未见过的),所以我清晰地知道这些技术的弱点在哪里。我已经很多年不再迷信这些具有 fancy type system 的语言。反而,我认为人们过度在乎这类类型系统,导致了很多不必要的麻烦。包括难理解,难学,编译速度很慢,出错信息混淆,经常必须拐弯抹角才能表达本来简单的想法,等等。
我当然能用这些语言,比其他人都用得好。我甚至实现过它们的“王牌特性”。但我知道那正好是它们的致命弱点,所以我不用它们。
所以最好的破除迷信的方法,就是亲自去实现你所迷信的那个东西,让自己成为“神”。我迷信很少的东西,因为我亲自去实现了它们,而且不局限于计算机领域。
比如乒乓球技术。我的朋友圈里经常看到有人为某些“世界排名第一”的选手喝彩,显示出各种膜拜。我看到都在笑,因为在我眼里,很多当今“世界顶尖”的选手不但技术糙,动作难看,性格还不好。他们永远也不会知道,这些当今 ITTF 排名前20的选手们,过去30年的绝大部分世界冠军,他们都不会我所拥有的某些超级技术。而他们比赛时的一举一动,他们的技巧和错误,在我的眼里都被尽数破解。
因为我研究了,我努力了,我科学地训练了自己的身体,所以我超越了他们。我没有理由再膜拜他们。没有人知道我付出了多少心血,多少汗水,多少痛。我并不在乎乒乓球这项运动,我为什么这么努力?这就是研究的精神——我想知道人类的身体能在多短的时间内掌握这类“绝活”。
我的对手们永远没法理解我为什么能打出他们永远也打不出来的好球。当有人输了球之后惊讶地问我:“这球是怎么回来的?!”(他可能认为我那个球违反了物理规律,从未在电视上见过)我说:“什么什么?你的来球太快了,我来不及反应,所以随便拍了一下,结果它就过去了……”
我为什么这么装傻?因为我不想教会他这个绝招,我甚至不让他找到任何线索。人们不知道这背后的秘密,所以他们无知地继续膜拜他们的“乒乓球神”,甚至为球场里那些只会来回拉球的“高手”喝彩。我不在乎他们知不知道,因为我完全不在乎他们怎么想。
我曾经喜欢告诉人们这类秘密,可是后来我终于发现,这对我没有任何好处,反而让我失去更多。他们廉价地得到我用辛苦换来的秘密,却仍然继续崇拜他们的神,不拿我当回事。我被送到人间来肯定不是干这种傻事的。就算人类灭绝了也跟我没有关系。我应该是有更重要的任务。
现在又过了一段时间,我已经训练了自己的语言模型,实现了自己的 AI 编程助手…… 它们的局限性和弱点也一一进入我的掌控。然后我跟世人的距离就越来越远。
世人眼里的天才都是演员。
真正的天才都被世人看作是白痴。
这就是我弄明白的事情。