根据经验,Rust 并不适合大多数编程任务,除非是在特定的情况下。
Rust 这门编程语言多年来一直处于突破的边缘,在大型科技领域,这一突破可能就在不远的未来。
Google工程总监 Lars Bergstrom 最近表示,当他的团队将 C++ 代码重写为 Rust 时,构建和维护所需的工作量减少了超过2倍。
那么,许多公司肯定会想要利用这些生产力的提升,对吗?
金融服务领域似乎并不太关心 Rust。
在对冲基金和银行中,Rust 工程师寥寥无几。但总有例外,比如加密货币领域;Selby Jennings 的高级招聘人员 Sam Tenzer 表示,他已经看到了对低延迟 Rust 开发人员的“高需求”,而来自 Calyptus 的最新市场报告揭示了在智能合约方面需要 Rust 经验的角色的“大幅增加”。
Steve Taylor 是少数几位在银行业工作的人之一,他正在为一家大型银行将一些低延迟的 C++ 交易系统重写为 Rust。他在接受 eFinancialCareers 采访时谈到了 Rust 相对于行业标准 C++ 的优势和挑战。
Rust 的优势
Rust 相对于 C++ 的主要优势是其安全性。
Taylor 表示:“一旦编写完成,Rust 将大部分难以追踪的错误转变为编译时错误”,这意味着在处理这些错误之前,您无法正确运行代码。它最有效地解决的问题是代码“可以运行100次”,但在第101次时会引发“地狱般的问题”。使用 Rust 将“消除整个运行时问题类别”。编译器几乎是“防弹的”,一旦运行起来,会提供一定程度的安全感。
C++ 本来是一门快速的语言,但 Taylor 表示:“编写良好的 Rust 代码与 C++ 一样快,有时甚至更快。”这是因为 Rust 强制只能有一个可变引用,从而使其能够“优化代码,C++ 无法做到这一点”。例如,这种方法可以防止数据竞争,使性能更加可预测,从而提高性能。
Rust 不容易掌握,但如果您能应对,回报将是指数级的。
Taylor 表示:“在获得生产力收益之前,您需要付出学习曲线的巨大代价。”最终,Taylor 表示 Rust “形式化了您在 C++ 中应该做的事情”。
C++ 的优势
C++ 相对于 Rust 的优势也伴随着其固有的缺点;虽然 Rust 具有安全性,但也带来了许多挫败感。即使你“确信代码没有问题”,也有可能出现一百万分之一的 bug,阻碍进展。Rust 被认为对程序员友好,但 Taylor 不这么认为;他说,虽然“C++ 拉着你的手走”,但 Rust 则是“掐住你的喉咙”。
学习曲线可能是普及 Rust 的最大障碍。Taylor 表示:“如果不是为了薪水,学习 Rust 非常困难。”他首次接触这门语言是在构建一个加密货币交易平台时,起初他以为会用 C++ 来完成这项工作。Rust 的难度导致一些业余程序员很早就放弃了,也让大公司不愿使用它,因为培训员工的过程变得更加费时费力。如果对公司来说不算昂贵,那对员工来说可能会很昂贵;Calyptus 的报告称,初级 Rust 工程师是 Web3 领域中薪水最低的员工之一。
低薪的 Rust 工作是这门语言未能普及的另一个原因。量化交易领域的技术人员开始尝试使用 Rust,但由于缺乏高薪的 Rust 工作机会(相对于 C++ 的机会较多),很难保证这些尝试不仅仅是尝试而已。
他补充说,C++ 更“优雅”,而 Rust 则更“冗长”。C++ 还拥有更广泛的库集,这意味着你可能需要在 Rust 中从头开始构建更多内容,尤其是如果你喜欢使用不太常见的技术。
Rust 将来会在金融领域流行起来吗?
在金融领域,Taylor 表示对 Rust 存在“热情”,但对可用的 Rust 程序员数量感到沮丧。在过去招聘 Rust 工作时,他表示他会收到“三份 Rust 简历,大约在三到四个月内…以及大约50份 C++ 简历”。
Taylor 预测 Rust 在未来会变得更加普遍。但不幸的是(尤其是随着人们开始认为编程本身正在过时),它可能始终处于边缘地位。
编译:万能的大雄
原作者:Alex McMurray