Rust居然适合所有的工程师!

15,392 阅读4分钟

有人认为,Rust更适合编程经验较少的程序员,如果你有1-2年的编程经验,那么入门Rust会更快一些。

此观点,近日在Reddit上还引起了广泛讨论,认为合适的原因是:

1. 开箱即用。得益于cargo的帮助,可以快速创建项目并开始编程,并拥有测试、文档、格式化的全套支持。

2. 简单易用。理解和模仿示例并不需要投入大量精力,程序往往能够清晰地表达自己的作用;在阅读文档和示例后,可以快速展开工作。

3. 鼓励探索。学习Rust可以推动对编程和计算机相关知识的理解,每深入一步都意味着有新的收获。

也有人认为,Rust更适合经验丰富的程序员,能对若干语言熟练使用。原因是,Rust的很多优秀特性博采众长,你也可以从这里了解到很多其他语言的精华。

Rust是一门充分吸收现代语言优秀特性,同时提供高阶的零开销抽象能力以及面向操作系统底层的接口,注重实用、性能、安全和编程体验的语言。

一、实用性

对于程序员来说,一门语言最重要的就是实用性。如果一门工具没有了实用性,那就失去了掌握它的意义。编程语言的使用者,绝大部分都是为了解决实际问题的。语言的完备性、设计美感、一致性都不是程序员们关注的重点。 

Rust就是一门非常务实的语言,但它的Unsafe也经常被人吐槽。很多人嘲讽说:Rust不是宣称安全性吗?那还提供Unsafe干啥?实际上,现实世界本就是Unsafe的,一只蝴蝶扇动翅膀都可能引起一场飓风,一只臭虫都可能引发电路板故障,那么与Unsafe世界打交道使用Unsafe便是很自然的事。

二、性能

在很多场景下,性能并不是至关重要的因素,但在某些场合,性能问题是0和1的问题。经常听到有人对Java和C++性能的比较,很多人有一种错觉,在Java强大的JIT加持下,不说超越C++,接近应该是没问题的。实际上,很多场景并非如此。比如,epic的早期实现使用Java提供的dexmaker,切换到C++之后,dex生成速度提升了将近10倍。

Rust也是一门注重性能的语言,程序员们使用的很多命令行工具就是用Rust写的,具有超越同类工具的卓越性能。Rust在性能方面,有着极高的上限,完全可以胜任你对性能敏感的场合。

三、移动语义

Rust语言没有历史包袱,它默认就是移动语义,不需要你去考虑右值引用、引用折叠、完美转发这种问题,使用起来非常自然。

Rust语言采用移动语义,拥有严格的代数类型系统以及生命周期、所有权模型。相比传统的编程语言,这些模型能在合适的时候释放所用资源,减少漏洞的出现。此外,通过语义检查,Rust能在编译期有效寻找内存和线程安全问题,降低开发和测试的负担。

四、所有权、生命周期和RAII

学习任何一门技术语言,从上层到底层,自顶向下到最后,一定会接触到CPU、内存等底层资源。

Rust 的所有权、生命周期对一些人可能比较新奇,但是,它本质上就是提供了一种对内存的控制方式,仅此而已。而这种访问方式,给了我们一种内存安全的可能,它需要我们编写程序的时候付出更多,但是这种 trade off 是有价值的。

我们可以看到集表达力、高性能、内存安全于一身的Rust,在很多场景里都能大施拳脚。因此,不论你经验丰富与否,都应该尝试学习一下Rust。掌握了Rust,就相当于掌握了很多其他语言的精髓,把Rust引入你的技术栈,也会让自己职业生涯多一门面向未来的利器。

非凸科技是一家国内领先的智能算法和交易系统服务公司,专注于智能算法交易领域的研究和开发。公司秉承着精英化团队的管理理念,有着纯正的名校基因和金牌血统。研发团队汇集了多位ACM金牌选手,90%以上来自海内外一流学府。

现阶段,我们正在寻找行业内优秀的Rust开发工程师,如果你愿意加入到顶配的技术团队,有着与市场一较高下的抱负,我们真诚地邀请你一同并肩而战!