当前位置: 首页 > news >正文

编程语言:微软 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 中破坏安全性,但它确实避免了很多旧的记忆问题。

相关文章:

  • 韩媒评UDC大会:区块链行业刮“环保之风”,TRON为最环保的企业
  • CSDN竞赛—第六期题解与感想
  • 图像处理学习笔记-03-灰度变换与空间滤波-模糊技术
  • 论文教程之 哈佛细读文献实用方法
  • RT-Thread线程管理与调度
  • Docker 化你的 Go 应用程序
  • 3.ROS2笔记-ROS2开发环境配置
  • 手写堆(Heap)
  • java-php-python-ssm白樵校园物品交易系统计算机毕业设计
  • C语言详解《位段+联合体+枚举》
  • 2.ROS2笔记-ROS2命令行操作
  • 【Proteus】:入门学习
  • SpringBoot启动流程简析
  • 如何在网站上安装 WordPress
  • java毕业设计社区健康管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  • [笔记] php常见简单功能及函数
  • 【React系列】如何构建React应用程序
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 2017-08-04 前端日报
  • Flex布局到底解决了什么问题
  • MobX
  • mongo索引构建
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Unix命令
  • vagrant 添加本地 box 安装 laravel homestead
  • 测试如何在敏捷团队中工作?
  • 从伪并行的 Python 多线程说起
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 数据结构java版之冒泡排序及优化
  • 微服务入门【系列视频课程】
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 一、python与pycharm的安装
  • 用 Swift 编写面向协议的视图
  • 怎么把视频里的音乐提取出来
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • python最赚钱的4个方向,你最心动的是哪个?
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • UI设计初学者应该如何入门?
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #FPGA(基础知识)
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $(function(){})与(function($){....})(jQuery)的区别
  • (分布式缓存)Redis哨兵
  • (分类)KNN算法- 参数调优
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (七)理解angular中的module和injector,即依赖注入
  • (三)c52学习之旅-点亮LED灯
  • (三)Honghu Cloud云架构一定时调度平台
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)ABI是什么