作者回复: 对,Rust 和 C/C++ 都是编译成机器码,直接面对具体的 CPU 架构。所以 Rust 代码需要为每个平台单独编译,这是它和 Java/DotNet 等语言的主要区别;但是像 golang 这样的语言,它也直接编译成机器码,但 golang,即便一个最简单的 hello world,编译出来的代码也包含了一个庞大的运行时,处理调度,GC 等工作。Rust 没有这些额外的运行时。
作者回复: 是的,一门语言不能解决所有问题。:)
作者回复: 对的。所以我们强调要实践,要学以致用。
作者回复: 谢谢你的回复!你可以看接下来的三篇,我分别用一个 CLI,一个 web 服务,一个对 csv 做 sql 查询的工具把 Rust 引入给 Python3/javascript,从几个方面展示 Rust 的巨大能力。所谓 talk is cheap, show me the code,你可以在看这些真实世界里的需求如何通过 Rust 实现,再想想自己的主力语言如何实现,两相对比,自己感受 Rust 的能力和潜力,是否适合做业务逻辑,职业面是否会窄,它会不会让你成为一个更好的程序员。 潜力这事,本就是仁者见仁智者见智的。我只是给出数据抛砖引玉。如果增长率不可以佐证潜力,stackoverflow 连续六年用户最爱不可以佐证潜力,良好的用户体验和稳定的六周发布周期不能佐证潜力,linux kernel,android 以及很多大厂在业务系统中都在引入 Rust 不能佐证潜力,那么我不知道什么可以佐证潜力。当然潜力不一定能兑现成未来的即战力,就像不少 NBA 新秀高光之后慢慢沦为路人。但作为一个在生产环境中使用过多种语言的工程师,我觉得 Rust 有很大的概率兑现它的这些潜力: 1. 在很多场合下,成为其他语言要做高性能组件的首选语言(比如做一个库给 Python/Elixir/nodejs 使用) 2. 成为业务流程中核心服务的首选语言(比如 in-memory 状态处理服务) 3. 成为多端共享核心逻辑的首选语言(比如 iOS/android 共享一个 engine) 4. 成为系统开发的重要语言
作者回复: 对,这个非常棒,我在后续的讲解中还引用了其中的图。还有一个类似的是:https://docs.google.com/presentation/d/1q-c7UAyrUlM-eZyTo1pd8SZ0qwA_wYxmPZVOQkoDmH4/
作者回复: 👍 的确如此
作者回复: 嗯,很多项目一开始是纯 golang,后来会把一些核心的,需要高性能的部分抽取出来用 rust 实现。
作者回复: 多看那些优秀的项目,多尝试着自己写一些东西。比如把一篇文字(如战争与和平)的词汇的 frequency 表生成出来,打印前 10,这样的简单问题,尝试用 Rust 实现,然后不断优化(使用 rayon,使用 tokio + channel,甚至使用 datafusion),把性能做到极致。
作者回复: 嗯,Rust for Rustaceans 比较适合有一定基础的,我也期待这本书。
作者回复: :)