编程语言:微软 Azure CTO 表示,是时候停止在新项目中使用 C 和 C++

这篇具有很好参考价值的文章主要介绍了编程语言:微软 Azure CTO 表示,是时候停止在新项目中使用 C 和 C++。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Azure CTO Mark Russinovich 说,业界应该将 C 和 C++ 语言视为“已弃用”。

Windows 11 22H2:如何获得微软最新的操作系统更新以及接下来会发生什么

Microsoft Azure 的首席技术官 Mark Russinovich 表示,出于安全性和可靠性的考虑,开发人员应避免在新项目中使用 C 或 C++ 编程语言,而应使用 Rust。

  • GitHub vs GitLab:你应该使用哪个程序?

  • 微软为测试人员提供 Dev Box 虚拟工作站

  • Cloudify DevOps 6.4 到来。这是新功能

  • 您的软件开发人员薪水和工作指南

Rust于 2020 年发布 1.0 版并诞生于 Mozilla,现在被用于 Android 开源项目 (AOSP)、Meta、Amazon Web Services、Microsoft 的部分 Windows 和 Azure、Linux 内核中,在许多其他地方。

工程师重视它的“内存安全保证”,它减少了手动管理程序内存的需要,进而降低了内存相关安全漏洞的风险,这些安全漏洞给用“内存不安全”C 或 C++ 编写的大型项目带来了负担,其中包括 Chrome, Android、Linux 内核和 Windows。

另外: 了解微软构建下一代应用程序的宏伟愿景

微软在过去 12 年中披露了 70% 的补丁是针对内存安全漏洞的修复,这主要是由于 Windows 主要用 C 和 C++ 编写的,因此微软在 2019 年将这一点赶回了家。谷歌的 Chrome 团队在 2020 年对自己的发现进行了权衡,发现Chrome 代码库中 70% 的严重安全漏洞是内存管理和安全漏洞。它主要是用 C++ 编写的。

“除非发生奇怪的事情,否则它[Rust] 将进入 6.1,”Linus Torvalds 周一写道,这似乎结束了关于 Rust 成为 Linux 内核的 C 的第二语言的长期争论。

Azure CTO 对使用 Rust 的唯一限定是,对于需要非垃圾收集 (GC) 语言的新项目,它比 C 和 C+ 更可取。GC 引擎处理内存管理。Google 的 Go 是一种垃圾收集语言,而 Rust 项目则提倡 Rust 不是. AWS 工程师喜欢 Rust over Go,因为它在没有 GC 的情况下提供了效率。

“说到语言,是时候停止在 C/C++ 中启动任何新项目,并将 Rust 用于那些需要非 GC 语言的场景。为了安全性和可靠性。行业应该宣布这些语言已弃用,”鲁西诺维奇写道。

另外: 最流行的编程语言以及在哪里学习它们

Rust 是 C 和 C++ 的一个有前途的替代品,特别是对于系统级编程、基础设施项目、嵌入式软件开发等等——但不是无处不在,也不是在所有项目中。

事实上,Russinovich后来补充说:“有大量的 C/C++ 将被维护和发展数十年(或更长时间)。昨晚我为 Handle 编写了一个功能,添加到大约 85,000 行 Sysinternals C/C++ 代码我写过。也就是说,我会偏向 Rust 的新工具。

Rust 肯定在向前发展,很可能 很快就会出现在 Linux 内核中 。

AOSP 是一个 Linux 发行版,于 2021 年 4 月开始在新代码中使用 Rust,但保留了其 C/C++ 代码库。那个月,AOSP 还支持将 Rust 作为 Linux 内核中新代码的一个选项。

另外: Windows 11 22H2:这些是重要的新安全功能

Meta 最近将 Rust 推广为与 C++ 一起受支持的主要服务器端语言。AWS 投资 Rust用于基础设施软件。Azure 工程师已经使用它来构建云工具,用于在 Kubernetes 中测试 WebAssembly 模块。另一方面,Chrome 团队在可预见的未来与 C++紧密相连,尽管他们对 Rust 很感兴趣;他们说,多年来,简单地切换到 Rust并不能消除很大一部分安全漏洞。相反,Chrome 正在为其 C++ 代码库带来内存安全。

万象灵动岛App,专门为安卓手机打造的灵动岛,一共支持5种特效!

此外,不应将 Rust 视为开发人员在使用 C 或 C++ 编码时所养成的所有坏习惯的灵丹妙药。

GreyNoise Intelligence 的网络安全研究员 Bob Rudis 曾在 Rapid7 工作,他指出开发人员可以将同样的不良安全习惯带到 Rust。

“考虑到以任何速度使“真正的”C/C++ 项目变得安全-r 所需的(时间/金钱/人员/服务),我倾向于同意 [与 Russinovich]。话虽如此,也有可能带来同样的坏处Rust 的实践,”他写道。

ZDNet 的 Steven J. Vaughan-Nichols广泛同意 这种观点:

“正如其他人所说,您可以在 C 或 C++ 中“安全地”编写,但无论您使用哪种方言,这都比在 Rust 中要难得多。请注意,您仍然可以在 Rust 中破坏安全性,但它确实避免了很多旧的记忆问题。文章来源地址https://www.toymoban.com/news/detail-457056.html

到了这里,关于编程语言:微软 Azure CTO 表示,是时候停止在新项目中使用 C 和 C++的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Go语言网络编程(socket编程)http编程

    Web服务器的工作原理可以简单地归纳为 客户机通过TCP/IP协议建立到服务器的TCP连接 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“

    2024年02月09日
    浏览(70)
  • Go语言网络编程(socket编程)WebSocket编程

    WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据 在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 需要安装第

    2024年02月09日
    浏览(77)
  • 【编程】C++语言编程规范-2

    结合C++ Effective系列参考树、尤其是工程经验教训的总结。 并发 除非必要,尽量少用线程。 多线程编程要守护好内存,使用atomic、mutex、condition variable、future、semaphore、latch、barrier等同步机制避免数据竞争。 尽量缩小临界区,临界区指独占的资源,禁止其他线程访问变量的代

    2024年02月21日
    浏览(52)
  • 【编程语言 · C语言 · for语句】

    C语言中,使用for语句也可以控制一个循环,并且在每一次循环时修改循环变量。在循环语句中,for语句的应用最为灵活,不仅可以用循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况。 for 语法: 执行for语句时,程序首先计算第一个表达式

    2024年02月08日
    浏览(48)
  • 【编程语言 · C语言 · while语句】

    循环 在前面我们了解到, 程序在运行时可以通过判断, 检验条件作出选择。此处,程序还必须能够重复, 也就是反复执行一段指令, 直到满足某个条件为止。 while 语句 while语句可以执行循环结构。 语法: 其一般形式如下: while 语句首先检验一个条件,也就是括号中的表达

    2024年02月08日
    浏览(49)
  • 【编程语言 · C语言 · 字符串】

    C中的字符串是一个以NULL字符\\\'\\0\\\'结尾的字符数组。 字符串声明可以通过多种方式进行,每种方式都有其各自的考虑因素。 例如: 这将创建一个由str_len个字符组成的名为str_name的字符串,并将其初始化为值“ string”。 提供字符串文字以初始化字符串时,编译器会自动将NULL字符

    2024年02月09日
    浏览(44)
  • 自然语言编程系列(二):自然语言处理(NLP)、编程语言处理(PPL)和GitHub Copilot X

           编程语言处理的核心是计算机如何理解和执行预定义的人工语言(编程语言),而自然语言处理则是研究如何使计算机理解并生成非正式、多样化的自然语言。GPT-4.0作为自然语言处理技术的最新迭代,其编程语言处理能力相较于前代模型有了显著提升。Copilot X 构建于

    2024年02月20日
    浏览(69)
  • 模拟计算器编程教程,中文编程开发语言工具编程实例

    模拟计算器编程教程,中文编程开发语言工具编程实例 中文编程系统化教程,不需英语基础。学习链接 ​​​​​​https://edu.csdn.net/course/detail/39036 课程安排:初级1 1  初级概述 2  熟悉构件取值赋值 3 折叠式菜单滑动面板编程 4 自定义图形窗口自定义标题栏编程 5 多行文本

    2024年02月08日
    浏览(67)
  • 编程语言的实际应用场景(C语言场景)

    从应用范围上来说,这些编程语言大致可以分为两种: 一种是专用型语言,也就是针对某个特定领域而设计出来的语言; 另一种是通用型语言,它们可以开发多种类型的应用程序,而不是局限在某个特定的领域。 专用型编程语言 通用型编程语言 一门通用性的语言,并没有

    2024年02月20日
    浏览(57)
  • GO语言网络编程(并发编程)Channel

    1.1.1 Channel 单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存进行数据交换,但是共享内存在不同的goroutine中容易发生竞态问题。为了保证数据交换的正确性,必须使用互斥量对内存进行加锁,这种做法势

    2024年02月09日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包