开源意识流

观点与事件:科技、开源、商业化

Rust的时间怕也不多了


By Forsaken

公有云的时间还有多少,事到如今似乎已经没什么可聊的了

但是 Rust 的时间还有多少,除了明眼人的判断之外,似乎还有一些令支持者不服气的地方。但是最近越来越多的问题暴露,似乎正在将 Rust 本就不神秘的面纱更进一步撕扯下来



由于 Side Channel 所引出的这个案例看,很明显,Rust 光是凭借编译时的静态检查,其实在运行时可以有很多 trick 将其保护特性骗过去,这就只能防君子不能防小人了。


从 Rust 特性的基本卖点来说。从 CS 的角度来看,首先 Rust 并不是一门创新型的语言,它几乎不用编程语言和编译器领域的最新成果,而是整合已经成熟了的理论,并将其工程化。这种务实的态度,在语言社区形成的初期有所打动人,毕竟没有好高骛远,以应用成熟理论的工程化为主,很有希望跟 C/C++ 在工程上挤一块市场出来。


另一方面来说,Rust 的主要卖点就是 memory safety,这在初期也很打动人。但是现代软件开发已经提出了 DevOps,而 DevOps 的本质还是照搬 CS 理论的老套路,即大编译器架构。将各种检查、构建、部署等等步骤切分成更加细粒度的 pass,这样从流程上方便插入,并可以在流程上解耦。也就是说,内存问题,可以下放到 QA 层面去解决。


既然如此,将 memory safety 整合到语言本身,相比起拆开到 sanitizer pass,就显得死板了。


在者,除了 Rust 本身的缺陷以外,使用者团队本身的素养,也未见得能达到特性一致性的层次。并不是说你用了 Rust 就安全了,你是不是真的能全流程使用安全特性,是一个见仁见智的问题。通常是声称用了 Rust 的团队一开源,发现大量 unsafe 代码,这倘若不能称其为自欺欺人,也只能说是有待将来再做改进——如果有那么闲的话。


更为蛋疼的是,最近谷歌宣布,从 Pixel8 开始,都会采用具备 MTE 技术的 ARM 芯片。MTE 被认为是 C 的救星 + Rust 杀手,只不过争议点在于什么时候开始大规模普及。


目前来看,也许结论已经不远了。