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
【工作地点】北京/上海/成都/新加坡
【简历名称】社招/校招+姓名+岗位+来源