未来Rust编程语言会成为主流吗?《2021年将成为系统程序员的“RUST”年》——Rust提供了业界创建安全系统编程的最佳选择Rust是一种开源系统编程语言,专注于速度、内存安全性和并行性。 Rust编程语言作为C、C 和其他语言的替代方案,以此来改善应用程序的安全状况 Rust旨在利用高级语言的能力来满足低级系统编程的需求
未来Rust编程语言会成为主流吗?
《2021年将成为系统程序员的“RUST”年》——Rust提供了业界创建安全系统编程的最佳选择Rust是一种开源系统编程语言,专注于速度、内存安全性和并行性。 Rust编程语言作为C、C 和其他语言的替代方案,以此来改善应用程序的安全状况 Rust旨zhǐ 在利用高级语言的《pinyin:de》能力来满足低级系统编程的需求。
未来Rust编程语言是{拼音:shì}否会成为主流,这需要了解Rust的过去和以后动向:
- Rust的2021动向
- 对于已过去的2020年,关于Rust你需要知道些什么
最近几[繁:幾]年来,Rust积攒了很多粉丝,这不是毫无原因的——
对于满足系统编程需求,C 是个选择,而Rust旨在成为其可靠的替代品。实际上,它解决了(繁体:瞭)C 中许多固有限制,例如:内存安全和线程安全问题,这些问题通常会导致令人厌烦的的分段错误。 Rust旨在利(pinyin:lì)用高级语言的能力来满足低级系统编程的需求。
在许多情况下,内存安全错误已成为安全漏洞的根本原因(pinyin:yīn)。从一定的视角下,请考虑一下这个数字–“ Microsoft的所有CVE中,大约70%是内存安全问题”。 C/C 程序员一直都《pinyin:dōu》在遇到与内存相关的错误——使用未初始化的内存、基于“释放”内存后使用、缓冲区溢出。另一个棘手的错[繁:錯]误源是数据争用(data races)和竞争条件;基于进行读/写的顺序对数据的不可预[拼音:yù]见的使用。
Rust是一种开源系统编程语言澳门新葡京,专注于速度,内存安全性和并行性。三个词(cí)定义了Rust:安全,并发和快速。其目的是防止首先引入内存安全错误。
一个简(繁:簡)单[繁体:單]示例的截图,显示Rust在编译时如何捕获内存错误;而实际场景更加复杂,这是内置功能应派上用场的地方。
Rust在编译时如何捕获内存错误,数据源Source: Talk by Steve Klabnik (@SteveKlabnik)
尽管现代变体引入了更多的保护措施,但C 并不是一种内存(cún)安全的语言,鉴于世界杯使用C/C 构建了许多核心平台组件,这样说一点也不过分。
谁在使用Rust?
目前【练:qián】在使用Rust这门语言的产品及大厂,数(繁:數)据来源:Source: Ryan Levick’s presentation
说到dào 利用Rust开发的应用,目前进行中的至少可以拿出两个:
- 操作系统作为系统程序的示例
- Firefox Servo作为高并发的示例
与此有《读:澳门永利yǒu》关AWS服务包括Amazon Simple Storage Service(Amazon S3),Amazon Elastic Compute Cloud(Amazon EC2),Amazon CloudFront,Amazon Route 53。
操作系统
AWS推出了Bottlerocket,这是一个用Rust编写的基于Linux的容器操作系统,Bottlerocket仅包含运行容器的基本软件,从而可以提高资源利用率并减少攻击面。Google Fuchsia OS的TCP/IP堆栈是用Rust编写的。Fuchsia具有模块化的内核体系结构,其中一些组件是用C 编写的,一些组件是用Go语言编写的,其《pinyin:qí》他组件则是用Rust语言编写的。这说明Rust具(拼音:jù)有与其他语言编写[繁:寫]的组件进行交互以帮助实现模块化内核体系结构的能力。
数(繁直播吧:數)据来源:https://blog.quarkslab.com/playing-around-with-the-fuchsia-operating-system.html
Firefox
在其新的CSS引擎(Quantum CSS)中,Firefox利用了Rust内置的编译时支持并行性。Web浏览器为背景的并行性,意味着你正在尝试并行呈现网页的所有不同部分;要知道并行性是很困难的,因为它引入了“竞赛条件”(Race Conditions),这些条件难以识别且难以排除。这就是Rust发挥其威(pinyin:wēi)力的[拼音:de]地方,Rust编译器静态验证代码以防止在编译期间出现竞争状况。
来源:Source:https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/
WebAssembly
WebAssemply通过将已编译的代码带到浏览器来向Web应用程序添加新功能;WebAssembly允许你采用以编译语言编写的功能,例如:C 和Rust,并在Web浏览器中安全地运行它。Rust提供了业界澳门永利创建安全系统编程语言的(拼音:de)最佳机会。——微软 Ryan Levick
最后,回顾下,2020年关于Rust发生了什么变化
Rust最初被认为是Mozilla研究项目,直到最近才成为[开源Rust]项目的唯一官方赞助商。然而,在2020年8月,它解雇了250人,其中包括积极参与Rust项目和Rust社区的部分人。(一些Rust维护者正在加入Amazon和Facebook,领导他们新创(繁:創)建的Rust团队。Niko Matsakis( @nikomatsakis)加入了亚马逊《繁:遜》,Patrick Walton(@pcwalton)加入了Facebook,成为Rust团队的技术负责人。此外,Rust基金会正在公司化成为一个独立实体成立,但尚不清【读:qīng】楚发起人是谁
目前的赞助商名单【练:dān】包括Sentry、GitHub、Google Cloud、Amazon Web Services、Mozilla和(练:hé)Microsoft。GitHub和Azure托管repo存储库和CI基《拼音:jī》础结构。
与众不《pinyin:bù》同的Rust
- 与Java不同,Rust的设计不需要垃圾收集器。不需要垃圾收集器意味着你不会受到运行时性能的损失,尤其是在低功耗硬件上。
- 编译时验证以确保线程安全和内存安全
我认为这是最重要的区别因{yīn}素,因为你不再依赖运行时检查。
- 系统编程应将异常处理移至编译时,并避免程序员犯错误在先。不允许为Null,也不支持例外
- 即用的软件包管理器可以与生态系统的其余部分集成(非常类似于Python),但是以前系统编程语言是没有有此功能的。
- 零成本抽象。什么意思呢?也就是说,由于抽象的系统开销,高级语言的性能和安全性通常需要权衡
这会联想到引用(pinyin:yòng)计数的指针和运行时检查。
尽管Rust语言yán 有诸多好处,但诚然其陡峭的学习曲线是不可避讳的。
此外,机构组织恐怕不太会利用Rust重新编写现有软件系{繁:係}统,而宁愿使用它来构建和当前生态系统作集成的{拼音:de}新组件,因此,跨库组件和《hé》工具链的互操作性成为重要的考量因素。
Rust社区
过去(练:qù)的(de)五年中{拼音:zhōng},Rust在StackOverflow上的开发者调查问卷中一直是最受欢迎的编程语言,位居榜首。
例如,在2020年调查中,有86.1%的开[繁:開]发者正在使用该语言[拼音:yán]或技术进行开发,并且表示有兴趣继续选用该语言。这几乎是C 收到的票数的两倍!
另外也可(练:kě)以参考美国社群应用Reddit上Sub-Reddit调查(r / adventofcode),其中Rust在Python之zhī 后排在第二(练:èr)位。
本文链接:http://10.21taiyang.com/Hotels/2402322.html
rust中(拼音:zhōng)文翻译转载请注明出处来源