为什么要学习 Rust

缘起

为什么学习 Rust?于我而言,也许是两年前当我迈入区块链的第一脚时就已经决定了。


选择一门编程语言是很困难的,但却又是重要的,其重要程度绝对不亚于你选择在哪个地方买房子或者是你选择在哪个地方扎根发展。因为当你开始学习一门编程语言的时候,不仅仅是你选择了这么编程语言,同时还选择了编程语言相关的技术领域。


我和 Rust 的缘分来自于对 libra 的学习,然后就被它吸引了。虽然很多时候选择编程语言就如同你恋爱结婚一样,都是在不知不觉就开始的,但是这里我还是想用比较有逻辑的理由来说一下为什么要选择 Rust。


技术角度

从技术上说,Rust 语言拥有非常显著的和引人注目的优势,这不仅仅体现在它追求替代 c++ 方面,还表现在它在工业界实际的优秀表现:出色的性能、高度控制、内存安全。

微软一项调查显示,在微软的系统中,有 70% 的漏洞是因为使用 c/c++ 语言而造成的。但是这些漏洞又无法通过使用 c# 来避免,因为无法具有与 c/c++ 相媲美的性能。Rust 被微软认为是替换 c/c++ 唯一的候选人,因为它性能出色、安全,如果加以利用则能解决微软系统中 70% 的漏洞。

除了内存安全、高性能和高度控制外,Rust 还在其它方面具有强大的吸引力,如强大的类型安全保证等。实际上很多人都将 Rust 和 C++ 比较,但是光从这一点上,其实是很难抉择的。


工程实现角度

在做一个项目进行语言选择时,通常会考虑以下问题:


(1)雇佣这类语言的开发人员是否容易?

(2)定制编程标准是否容易?

(3)开发人员的平均交付时间多长?


Rust 语言虽然创建于 2006 年,但是却在 2015 年才发行其第一个版本,目前国内的熟手并不是很多,但是也有不少的大厂开始在进行这方面技术的使用。Rust 语言作为能和 C++ 媲美的语言,其上手比 c++ 更容易,尤其是 c/c++ 熟手转 Rust 就更容易。


Rust 语言本身有一条开发规范,如结构体、trait 等要求首字母大写、驼峰命名,函数要求蛇形命名法等,因此非常利于项目组统一风格。另外就是 Rust 语言至今时间尚短,不会像 c++ 那样出现 c99 到 c11 这么巨大的语法差距。


Rust 功能强大,即适合进行 web 开发,又适合嵌入式系统层面的开发,并且具有丰富的软件库,而且编译后的软件产生 bug 的概率更小,因此开发效率远胜于 c++。


经济收益角度

这一点我不想从开发成本上来阐述,因为前面两点已经完全能够体现了。这一点我想说明的是选择 Rust 对个人成长和个人收益上的好处。Rust 作为一门新语言,目前国内的熟手人群相对于其它语言来说要少的多,而且相对于 go 语言来说,它相对更难上手。但是由于其出色的性能和安全性,又在逐渐成为业界的宠儿,前面提到两大巨头微软和谷歌都在其项目中使用 Rust,还有前段时间满城风雨的 facebook 使用 Rust 来构建其区块链系统 libra。种种的种种,都表明,这是一门很有钱途的语言。


前面我提到,选择某种语言,其实也就选择相关的技术栈。Rust 语言天然适合区块链这种要求高度安全的系统的开发,学习 Rust,再进一步进军区块链相关的技术,对个人来说是比较不错的选择。


结论

上面罗列了貌似比较有逻辑的理由,但其实并不重要,因为作为一个 IT 技术从业人员,其实只有一句话:学,就完了。

发布于 2019-12-24 22:14