前 Deepin CTO 王勇说一下我对 Rust 的感受

作为曾经的 Haskeller, 说一下我对 Rust 的感受,语言很有力量, 但是不感冒这个语言的原因:

1. 世界上有很多业务性的逻辑是需要创造力和编程心流体验的, 而 Rust 编译器总是打断你方向性的思考, 强制让你关注设计阶段不重要的细节, 丧失了很多编程乐趣。

2. Rust 社区的人似乎不懂得市场经济和成本概念, 一个好的软件, 不仅仅只是内存安全和绝对性能, 代码可读性, 场景适合性, 认知深刻和持续维护的软件对用户才有价值, 重写完一个软件, 证明 rust 比别的语言快和自己厉害, 马上就弃坑的软件没有价值。

3. Rust 社区推崇内存的细腻控制, 有时候就和 C++ 的开发人员一样讨厌, 把指针或者生命周期控制能力当作比较的炫耀资本, Rust 更像是一种证明自己比别人厉害的工具。 我不是说 Rust 不好, 而是不喜欢这种认为 Rust 就是天下第一的思想, 什么都要用 Rust 重写的想法。

4. Rust 的强制内存管理, 在编写复杂逻辑的时候, 编译器打断太生硬了, 导致人无法安静的思考最重要的架构设计。 Rust 对于底层库或者实时性这些不需要 GC 或者性能苛刻的场景很适合,为了内存安全可以忍受编译器严格。 但是现实大部分场景不是都是内存安全优先的, 而是创造力和逻辑清晰优先的。

来源:Twitter

看来大家对编程语言比较感兴趣, 我分享一些编程语言的感悟, 因为 Twitter 字数限制, 用语难免不严谨。 ;)

1. C/C++: 我的入门语言,充满原生力量,其实指针、内存分配和释放, 用的熟练就好了, 没啥难度。 比较麻烦的是, 如果项目不是自己设计的, 逻辑比较复杂, 内存安全问题没法根治。

2. Java: 我第一份工作的语言(J2ME), 严谨, 工业质量高,天生为企业程序设计的,特别是 Eclipse 开创了 IDE 智能编程先河。 但是不自由, 特别是 Linux 下探索一些技术原理的时候, 什么都要先定义 Class 再创建 Object 再设计 setter/gettter, 还要考虑模式设计的时候, 不符合黑客道自由自在的精神。

3. Haskell: 当年唐凤单刀编写 Perl6 编译器, 那时候对一个人的生产力能达到多么恐怖的实力感到震惊(第一个是 John Carmark, 我的偶像), 客观的说 Haskell 非常强, 类型推导、代码优美、高性能递归