为什么要学习 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技术从业人员,其实只有一句话:学,就完了。

令狐一冲

讨论数量: 5

想学另一门技术保底,徘徊过golang,入门后觉得不太合适;看了rust文档,门槛是有点高 :joy:,进退两难啊

1周前 评论
linghuyichong (楼主) 1周前
linghuyichong (楼主) 1周前

@linghuyichong 可以的,现在在过文档,所有权这部分,真的难懂,没学过完整的静态语言,大学入门过C, :+1:

1周前 评论

@linghuyichong 不懂得地方,望大佬多多指教

1周前 评论

@qinplain 不客气,相互学习,网易云课堂的视频昨天才上传,审批可能需要两天,估计明天能看到整个基础部分,差不多对应《Rust程序设计语言》这本书的1-9章,进阶部分对应剩下的部分,目前正在录制

1周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!