In the middle of the world

动笔之前,回顾了整篇文章的全貌,忽然无比怀念起那个夏天,在我看完了K&R C,学了一点点不明所以的C++,然后就抱起一本pdf学了Erlang的日子。

那个夏天的我会写C和Erlang。那个夏天的我就像拥有了全世界。

那是距离我拥有全世界最近的一个夏天。

后来我又学会了太多太多。再也回不去了。


大学的时间,花掉了不少的比重狂写Python,狂写JS,甚至狂写Ruby和CoffeeScript。大多数时间里我保持着清醒的认知:C++狗都不写。偶尔会暂时的失了智,写上三两行,然后迅速被一棒子打醒。

那时的我怎么也不会相信,后来的我会沦落到天天写C++。连着写大半年的C++。靠C++混口饭吃。

我痛恨自己写下的每一行代码。每一个函数调用。每一个字。

痛恨每一个对象的构造语法。痛恨每一个头文件的引用。当然,更加痛恨每一种构建C++项目的工具和实践。

我痛恨C++所有的丑陋,痛恨它所有的优美。那是畸形的优美。是建立在丑陋之上的美丽。是从贫瘠的岩缝里生长出的迎客松。是克苏鲁。


我不知道自己是不是应该在那些年里再多花一点时间去学Rust。如果在大学里就学会了它,会不会造成什么变化。

不过我确实很理解自己为什么没有走那条路。那时的Rust还有很多 非常 不完善的地方,而不是像迎来2021 edition的它一样只是可以容忍的不完善。

并且,那时我在用Python写科研代码。当别人按着我的头让我写的是Python的时候,我并不会因此对Rust产生什么感情。

但当这门语言从Python变成C++的时候,情况就大不一样了。


Rust也无法成为我的梦中情人。

它太理智了。它比我还要理智。它斩断我对于一切不切实际的抽象的念想。

它一遍又一遍的骂我。清醒一点。那不是现实中可以存在的代码。做个有逻辑的人吧。而不是做个自以为是的人。写点能跑的。

当然,在Rust的语境下,其实是写点能编译的。

Rust是那个勉勉强强凑合着过日子的老伴。

当你对现实只剩下失望的时候,它又是个称职的温柔乡和避风港。

它掏出析取类型和模式匹配,掏出夸张的类型推导。掏出一切一切你所预期甚至超出预期的 现代 特性。掏出无栈协程。

最后还能告诉你,以后还有更多哦。好日子在后头呢。

写C++的人怎么可能受得了这个?!

但是,它没有浪漫主义。


在Rust的语境下,我的创作目的只有一个,就是做点东西出来。

原因很简单。Rust的开发模式和流程中,把正确性证明提前了太多太多。

这个世界上没有人能胡乱地写点什么Rust。

Rust太认真了。认真得让人觉得没意思。

它太理智了。


我相信,这两门语言之间真的有一堵墙。

我凝视着两片星空之间的黑暗。我想踩着墙走。

每个程序员都有一个梦。梦里的程序员写出了整个世界。

我在梦里这两个语言都不想写。