前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rust:冉冉升起的新力量

Rust:冉冉升起的新力量

作者头像
用户1682855
发布2019-03-06 17:55:53
6990
发布2019-03-06 17:55:53
举报
文章被收录于专栏:前沿技墅前沿技墅

你肯定有过夏夜仰望星空的时候,但不知道你是否思考过这样一个问题:如何才能知道宇宙万物星罗棋布的规律?科学家们殚精竭虑地研究,就是为了探寻这个秘密。如果科学家们能和宇宙的设计者对话,就可以通过设计者的亲口描述了解其对宇宙万物的规划,这样就可以对研究宇宙万物起到提纲挈领的作用,科学家们的工作会更有成效。但是,没有这种“如果”。

一门编程语言就像一个小宇宙,语言中的各种语法概念就像一颗颗星辰。对于初学者来说,看这些语法概念与看星罗棋布时产生的迷惑是相似的。幸亏编程语言是由人类创造的,编程语言的作者可以被找到,编程语言的源码也可以被看到,甚至一些好的编程语言还会为你准备好非常丰富的文档,供你参阅学习。通过这些信息我们可以了解到:一门语言缘何诞生?它想解决什么问题?它遵循什么样的设计哲学?一门好的语言是有内涵哲学的语言,它表里如一,有所想,有所为。

Rust语言就是这样一门哲学内涵丰富的编程语言。通过了解Rust遵循什么样的设计哲学,进一步了解它的语法结构和编程理念,就可以系统地掌握这门语言的核心,而不至于在其纷繁复杂的语法细节中迷失。

缘起

任何一门新技术的兴起,都是为了解决一个问题。自操作系统诞生以来,系统级主流编程语言,从汇编语言到C++,已经发展了近50 个年头,但依然存在两个难题:

  • 很难编写内存安全的代码。
  • 很难编写线程安全的代码。

这两个难题存在的本质原因是C/C++属于类型不安全的语言,它们薄弱的内存管理机制导致了很多常见的漏洞。其实20 世纪80 年代也出现过非常优秀的语言,比如Ada 语言。Ada拥有诸多优秀的特性:可以在编译期进行类型检查、无GC 式确定性内存管理、内置安全并发模型、无数据竞争、系统级硬实时编程等。但它的性能和同时期的C/C++相比确实是有差距的。那个时代计算资源匮乏,大家追求的是性能。所以,大家都宁愿牺牲安全性来换取性能。这也是C/C++得以普及的原因。

时间很快到了2006年,自称“职业编程语言工程师”的Graydon Hoare(简称为GH),开始开发一门名为Rust的编程语言。

什么是“职业编程语言工程师”?用GH自己的话说,职业编程语言工程师的日常工作就是给其他语言开发编译器和工具集,但并未参与这些语言本身的设计。自然而然地,GH萌生了自己开发一门语言的想法,这门语言就是Rust

“Rust”这个名字包含了GH 对这门语言的预期。在自然界有一种叫作锈菌(Rust Fungi)的真菌,这种真菌寄生于植物中,引发病害,而且号称“本世纪最可怕的生态病害”之一。这种真菌的生命力非常顽强,其在生命周期内可以产生多达5 种孢子类型,这5 种生命形态还可以相互转化,如果用软件术语来描述这种特性,那就是“鲁棒性超强”。可以回想一下Rust的Logo形状,像不像一个细菌?Logo上面有5个圆圈,也和锈菌这5种生命形态相对应,暗示Rust语言的鲁棒性也超强。Rust也有铁锈的意思,暗合裸金属之意,代表其系统级编程语言属性,有直接操作底层硬件的能力。此外Rust在字形组合上也糅合了Trust和Robust,暗示了信任与鲁棒性。因此,Rust真可谓一个好名字。事实证明,Rust语言不仅仅是名字起得好。

期待

GH认为,未来的互联网除了关注性能,还一定会高度关注安全性和并发性。整个世界对C和C++的设计方式的青睐在不断地发生改变。其实20世纪七八十年代涌现了很多优秀的语言,拥有很多优秀的特性,但它们的内存模型非常简易,不能保证足够的安全。比如Ada语言的动态内存管理虽然是高规格的安全设计,但还是引起了非常重大的安全事故(20世纪90年代,欧洲空间局阿丽亚娜五号运载火箭发射失败,原因是Ada在将64位浮点数转换为16位无符号整数时,发生了溢出。)。

所以,GH对这门语言的期望如下。

  • 必须是更加安全、不易崩溃的,尤其在操作内存时,这一点更为重要。
  • 不需要有垃圾回收这样的系统,不能为了内存安全而引入性能负担。
  • 不是一门仅仅拥有一个主要特性的语言,而应该拥有一系列的广泛特性,这些特性之间又不乏一致性。这些特性可以很好地相互协作,从而使该语言更容易编写、维护和调试,让程序员写出更安全、更高效的代码。

总而言之,就是可以提供高的开发效率,代码容易维护,性能还能与C/C++媲美,还得保证安全性的一门语言。正是因为GH 以这种观点作为基石,才使得今天的Rust成为了一门同时追求安全、并发和性能的现代系统级编程语言。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前沿技墅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 缘起
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档