【翻译】微软对 Rust 的热爱是怎么回事?

2024-06-23 00:18

本文主要是介绍【翻译】微软对 Rust 的热爱是怎么回事?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 原文地址:https://visualstudiomagazine.com/articles/2020/06/02/rust-love.aspx?m=1

  • 原文作者:David Ramel (06/02/2020)

  • 译者:【 Jancd 】

  • 校对:【 Rust 日报小组 】



微软已经管理了几种流行的编程语言 - C#,TypeScript,F#,那为什么微软也和广大开发者一样也喜欢 Rust 呢?

举个栗子,去年 C++ 内存崩溃的 bug 促使微软将 Rust 视为底层系统编程的替代方案。

就在上周【译注:原文发布日期为 06/02/2020 】,Stack Overflow 发布了最新版本的大型开发者调查报告,该调查报告指出 Rust 连续第五年被评为“最受欢迎”的编程语言。这是对使用某种语言进行开发,并表示有兴趣继续使用该语言的受访者所占百分比的一种度量。

并且有一位开发者在 Stack Overflow 调查报告评论区中写道:“如果你喜欢 C++,那么你会爱上 Rust!”。

令人惊讶的是,Stack Overflow 指出“参加调查的大多数开发人员都不熟悉该语言”,在流行度方面,Rust 在 Stack Overflow 列表中排名第 19 位。所以,尽管它无疑是 Stack Overflow 用户群体中“最受欢迎”的语言,但了解或使用它的人并不多。这也是个问题。

与此同时,就在今天【译注:2020 年 6 月 2 号】,Rust 进入了 TIOBE 指数的前 20 名,它从第 38 位跃升到第 20 位,跃升了惊人的 18 位,这其实是挺罕见的。

以下是 TIOBE 对上述一些发展的看法:

主要原因是 Rust 是一种正确的系统编程语言。Rust 在静态强类型化的同时,解决了其他编程语言的冗余编程和一些尖锐问题。它的类型系统防止运行时空指针异常,并且他的内存管理是在编译期间计算完成的,因此也没有垃圾回收带来的问题。我们曾尝试使用 D,Lua 和 Julia 试图击败 C/C++,但只有 Rust 是第一个真正接近这个目标的。让我们看看 Rust 能否在未来几年保持前 20 的位置。

那 Stack Overflow 是怎么看待的呢?在这次调查发布之前,Rust 仅仅是连续第四年成为“最受喜爱”的语言,Stack Overflow 在一篇题为“什么是 Rust,为什么它这么受欢迎”的文章中对这一现象进行了深入剖析。

这是 Stack Overflow 的 TL;DR:

Rust 保证了性能、可控、内存安全和无畏并发 — 这是一个诱人的组合,尤其是对于系统编程而言。它还将一些有趣的特性(如仿射类型(affine types)和卫生宏(hygienic macro)引入了主流论述。加上 Rust 本身开放的开发过程,许多程序员(甚至那些不使用它的程序员)对 Rust 的高度尊重是有道理的。

与此同时,对于微软来说,这一切都是为了漏洞安全以及避免那些讨厌的 CVEs(Common Vulnerabilities and Exposures,即常见的漏洞和披露)。微软安全响应中心团队发现:“大多数修复的漏洞和分配的 CVE 是由开发人员无意中在其 C 和 C++ 代码中写了内存错误的 bug 所引起的。”

这促使团队寻找 C++ 的替代品,C++ 已被用于编写系统软件,以及一些微软产品,如各种 Windows 版本、Visual Studio、Office、Internet Explorer等。

微软 MSRC 团队在 2019 年 7 月的一篇文章中表示:“我们认为 Rust 编程语言是目前业界尽可能采用的最佳选择,因为它能够以一种内存安全的方式编写系统级程序。”

随后,他们撰写了博客文章“为什么用 Rust 进行安全的系统编程”,作为 “Rust-Is-Better-than-C++” 系列的一部分,MSRC 团队表示:“Rust 与 C 和 C++ 的区别在于其强大的安全保证。”

但是除了性能和安全性以外,MSRC 团队还发现其他 Microsoft 团队出于其他原因而使用 Rust,包括:

  • 根据一项内部调查,采纳 Rust 的首要原因是“正确性” —— 这是 Rust 安全保证的延伸,它致力于实现格言“如果编译成功,那么它就能很好地运作”。

  • Rust 静态地强行限制许多超越内存安全的属性,包括空指针安全性和数据竞争安全性(即不能从两个或多个线程对一块内存进行非同步访问)。

  • 微软的许多团队已经发现,Rust 丰富的类型系统使得编写表达性程序很方便。带关联数据的枚举和强大的 trait 系统等概念进一步强化了 Rust 使程序尽可能无 bug 的目标。

  • Rust 现有的社区为该语言带来了巨大的好处。一门语言的强大功能大多来自其核心之外的库、工具链和学习材料。虽然 Rust 仍然是一种年轻的语言,但它已经拥有一个健康的生态系统,拥有一个活跃和开放的编译器与语言开发过程,并且它显示了促进一个强大的开源社区和支持生产用户的能力。这让我们更有理由相信这种语言有一个光明的未来。

MSRC 团队说:“我们相信 Rust 在编写安全系统软件方面会改变游戏规则。Rust 提供编写底层系统所需的性能和控制,同时使软件开发人员能够编写健壮,安全的程序。”

虽然微软还没有正式将其 C++ 代码替换为 Rust,但 MSRC 团队已经开始关注 Rust,撰写各种博文,包括:

  • The Safety Boat: Kubernetes and Rust

  • Using Rust in Windows

  • An intern's experience with Rust

  • Designing a COM library for Rust

  • Building the Azure IoT Edge Security Daemon in Rust

所以,以 .Net 为中心的开发者们,如果你发现更多来自微软的“ Rust 程序员招聘”帖子,不要感到惊讶。

这篇关于【翻译】微软对 Rust 的热爱是怎么回事?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085813

相关文章

Rust中的Option枚举快速入门教程

《Rust中的Option枚举快速入门教程》Rust中的Option枚举用于表示可能不存在的值,提供了多种方法来处理这些值,避免了空指针异常,文章介绍了Option的定义、常见方法、使用场景以及注意事... 目录引言Option介绍Option的常见方法Option使用场景场景一:函数返回可能不存在的值场景

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

【Rust练习】12.枚举

练习题来自:https://practice-zh.course.rs/compound-types/enum.html 1 // 修复错误enum Number {Zero,One,Two,}enum Number1 {Zero = 0,One,Two,}// C语言风格的枚举定义enum Number2 {Zero = 0.0,One = 1.0,Two = 2.0,}fn m

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

微软正式推出 Spartan 斯巴达浏览器

作为用于替代 IE 浏览器的下一代继任者,微软的 Project Spartan 斯巴达浏览器可算是吊足了玩家们的胃口!如今,在最新的 Windows 10 Build 10049 版本起,它终于正式登场了。 斯巴达浏览器搭载了全新的渲染引擎、新的用户界面并集成了 Cortana 语音助手。功能上新增了稍后阅读列表、阅读视图、F12开发者工具、支持网页注释 (手写涂鸦),可以保存到 O

第二十四章 rust中的运算符重载

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust中的运算符重载 目录 注意一、前言二、基本使用三、常用运算符四、通用约束 一、前言 C/C++中有运算符重载这一概念,它的目的是让即使含不相干的内容也能通过我们自定义的方法进行运算符操作运算。 比如字符串本身是不能相加的,但由于C++中的String重载了运算符+,所以我们就可以将两个字符串进行相加、但实际

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼?项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时,效率和理解度都会大打折扣。别担心,只需3分钟,我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是老手,这一技巧都将是你的得力助手,让你在信息的海洋中畅游无阻。 方法一:使用同声传译王软件 同声传译王是一款专业的翻译软件,它支持多种语言翻译,可以excel

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

linux dlopen手册翻译

名称 dlclose, dlopen, dlmopen 打开和关闭一个共享对象 简介 #include <dlfcn.h>void *dlopen(const char*filename, int flags);int dlclose(void *handle);#define _GNU_SOURCE#include <dlfcn.h>void *dlmoopen(Lmid_t lm