2015 年底,Rust 刚刚发布 v1.0 版本,当初支持者很少,那为何现在很多企业开始选择全面采用 Rust 语言,并用来写数据库和存储层代码呢?PingCAP 创始人表示,首先,我不是某一个具体的编程语言或者工具的信仰者,但在做项目时选择一个好的工具也是十分必要的。
通常,Rust 有几点特性非常受青睐,比如,内存安全性、高性能、强大的包管理和构建工具 Cargo、更现代的语法、与 C++ 几乎一致的调试调优体验,以及 FFI,可以无损失的链接和调用 RocksDB 的 C API。
很多企业选择 Rust,主要因为:一方面,安全性是第一位,C++ 的内存管理和避免 Data race 的问题虽然靠有经验工程师可以解决,但是仍然没有在编译器层面上强约束,把问题扼杀在摇篮之中解决的彻底,而 Rust 可以很好地解决这个问题。另一方面,Rust 是一个非常现代化的编程语言,现代的类型系统、模式匹配、功能强大的宏、trait 等熟悉以后会极大提升开发效率。
然而,选择 Rust 的同时,也要承担语言不成熟阶段带来的问题。比如,最初工程师们对 Rust 的看法可能仅仅是内存安全、性能好,没有 GC 效率肯定高等。但实际上并不是这样,如果你自己写的代码不够好,那么就不能认为自己手动分配内存就比 GC 做得好。
目前,Rust 已得到越来越多企业和开发者的验证,初创公司或初开发产品公司是否要选择或者切换到 Rust 语言,可以考虑以下几方面:
如果公司内部在 C/C++/Java 上的开发规范做得很好,那么可以先不考虑切换到 Rust。Rust 相当于自带严格的安全性限制,工程师一般不会写出有安全隐患的代码,语言本身的设计可以帮助工程师规避一些常规问题。
如果是基础软件类的企业,一般不会犯太多低级错误。Rust 的收益主要体现在数据库最核心的组建或者功能的编写上,对剩下 90% 的部分而言,效率可能比安全更重要。
非 Rust 不可的场景有写驱动,比如操作系统内核等,效率绝对高;SSL 加密或者产品内部的某个关键链路,比如浏览器里面的渲染引擎,这类 CPU 密集型对安全要求较高的场景。
Rust 社区非常开放,氛围活跃,可以在其中寻找问题的答案或者志同道合的朋友。
5.代码实现逻辑。使用 Rust 写出来的程序可以专注优化程序逻辑本身,比如让程序更加适应操作系统、减少线程切换等。
如果你对 Rust 语言感兴趣,那么欢迎加入非凸!非凸使用 Rust 语言构建业内领先的算法交易系统,成为行业先驱。Rust 语言最大的缺点是难度高,但这正满足了全 Rust 工程师的非凸追求极致、精益求精的极客精神。在算法上,相对于其他的编程语言,Rust 保证了算法系统的安全与稳定,系统优势在容量达到百亿后会更加凸显。
【招聘岗位】Rust 开发工程师/量化策略研究员/商务经理/财务主管
【投递邮箱】recruit@ft.tech
【官方网站】ft.tech
【工作地点】北京/上海/成都/新加坡
【简历名称】社招/校招 + 姓名 + 岗位 + 来源