又一个视频班同学毕业。看到大家的毕业感言,很是欣慰。感觉这么多年的心血还是有意义的。
这个同学最后一课选择了C++。虽然课程也深入讲解了 Rust 语言的内存管理,但增加最后一课 C++ 之后,我们都意识到了这个事情:虽然大家都厌恶过 C++,但折腾了一周的 Rust,甚至用 Rust 写出一个解释器之后,C++ 的内存管理方式变得如此清晰。因为没有 Rust 那样复杂的类型系统,多余的规则和拍脑袋的“设计”,反而觉得 C++ 比 Rust 容易了很多。
细节我不想多说,但相对于 Rust 而言,C++ 其实是我更推荐的底层语言。现在很多人热衷于“热门新语言”,希望 Rust 能取代 C++,甚至想用 Rust 重写一切,看到某个新项目是 Rust 写的就觉得好。但我心里明白,Rust 是无法取代 C++ 的。不仅因为世界上有太多重要的 C/C++ 代码,不大可能都重写一遍,而且因为 Rust 语言自身的缺点,用起来比 C++ 还头痛,使得它不大可能成为取代 C++ 的选择。
也许有人会说“头痛是因为你不懂”,这是常见的借口。去问问我的学生们,就会知道他们能写出一般人写不了的 Rust 代码。到底谁更懂 Rust?我其实知道 Rust 的致命设计错误(也就是头痛的根源)在哪里,但我不想泄露这个秘密。我等人们多年后去发现 😄
之前有很多人希望 Go 语言能取代 C++,结果非但没成功取代 C++,连 Go 语言自己都快要被取代了。Go 语言不吸取前人的教训,增加了那么多 C 和 Java 都没有的毛病,又如何取代 C/C++?现在又来一个 Rust…… 反反复复的希望,却没看到它们自身的问题。为什么总有人想要取代 C++ 呢?它其实并不是那么讨厌,反而有很多值得学习的地方。我认为 C/C++ 值得更多人的关注。
https://postimg.cc/gallery/prwP6J5
