Sysinternals 作者:是时候停用 C/C++ 开发新项目并使用 Rust 了


Microsoft Azure CTO、Sysinternals 的主要开发者 Mark Russinovich 在其社交账号上发布动态称,开发人员是时候停止使用 C/C++ 来启动新项目,并建议可在需要使用 non-GC 语言的场景中使用 Rust。

“说到语言,现在是时候停止用 C/C++ 启动任何新项目了,并在那些需要使用 non-GC 语言的场景中使用 Rust。为了安全性和可靠性,业界应该宣布弃用这些语言。”

此言论一出,不可避免的引起了广泛地讨论。有人问这是他个人的观点,还是作为 CTO 的一个声明。.NET Foundation 成员 Shawn Wildermuth 则在评论区提出疑问,Rust 是否有足够的开发人员来推动工作的进行?对此则有开发者回复称,“想要舍下 C/C++ 确实非常困难,但这并不重要;年轻的开发者可以很快掌握 Rust,相较试图寻找有才华的 C/C++ 开发者,此举要容易得多”。

还有评论表示:

George Ou:我是 Rust 的忠实粉丝,但对于那些认为有安全版本的 C 和 C++ 的人,你怎么说?

Ted Mielczarek:要么他们在骗你,要么他们建议的东西需要有效地重写你的整个代码库,所以你最好使用 Rust。

而在反对的声音当中,一个ID 为 ionCube24 的用户称,Mark Russinovich 的意思更像是在责怪语言而不是程序员。但事实是“C++ 很好,只是很多使用它(和其他语言)的人基本上不知道如何编程;切换语言并不会解决这一问题。”

有人以自身实践举例表明,Rust 存在局限性,并不能解决他所有的问题。然而该网友的论点似乎有点站不住脚:

“它不必解决所有问题才能产生重大影响。”

“为什么要以 ‘解决所有的问题’ 为标准,它是否需要 '解决你所有的问题' 才能在编程中产生实质性的差异?在我看来,想要 '在所有新项目中使用它' 这个标准远比让 '它能解决所有已知问题' 要低得多。”

还有人则颇为“痛心”的感叹 Mark Russinovich 变了,不再“cool”了。也有相对理智的发声称,“或者更好的方式是:不要再过度的去宣传推广一种编程语言。不同的工具适合不同的问题。Rust 很好,但它不是所有编程问题的解决方案”。

更有甚者提出了自己认为更好的 C/C++ 替代方案,“当 GCed 系统语言可以接受时,也不会再有新的 C/C++ 项目。 Go、Nim 和 Crystal 都是比 C/C++ 更好的选择。还有 Zig,它正在做一些很酷的事情,但尚未像 Rust 那样成熟或流行。”

目前,Hacker News 和 Reddit 上也有相关的话题讨论。

Rust 最近确实有着较高的热度:

  • Linus Torvalds 透露,没有意外的话 Rust 将在 6.1 版本进入 Linux 内核
  • Cloudflare 放弃 Nginx,使用内部 Rust 编写的 Pingora
  • GStreamer 准备将 Rust 编写的插件作为其官方二进制版本的一部分发布
  • Rust 成立专门的安全团队
  • Asahi Linux 计划使用 Rust 编写 Apple 芯片的 GPU 驱动程序
  • GCC Rust 得到 GCC 批准,将被纳入主线代码库

相关文章

2022-09-22

Microsoft Azure CTO、Sysinternals 的主要开发者 Mark Russinovich 近日发表言论称,建议开发人员停止使用 C/C++ 来启动新项目,并建议可在需要使用 non-GC 语言的场景中使用 Rust。针对此言论,外媒 The Register 向微软进行

2022-05-06

你明确地展开调试器用户界面来查看它的值。 扩展作者的 UX 指南:VS Code 扩展的 UI 最佳实践指南 针对扩展作者的 UX 指南已经被重做,有了自己的目录,在这里你可以找到使用各种 VS Code 用户界面元素的最佳实践。特

2022-08-24

有许可证的,而且已经六年没有更新了。unidiff-comments 的作者 noerw 也意识到自己 Fork 了一个无许可的项目,早在 2020 年就在原始仓库提过 Issue 让作者加一个开源许可证,但一直没有得到回应。 不过,在 Artemis Everfree 关于

2022-05-26

接也不用输入密码。 我们在执行 xmake service 命令时候,默认就会生成一个服务端和客户端的配置文件,并且自动生成一个默认的 token,因此本地直连是不需要任何配置的。 服务端认证配置 服务端可以配置多个 token 用

2022-06-20

Tauri 1.0 已正式发布。 Tauri 是一个桌面 UI 框架,可让开发者使用每个平台的 Webview 技术栈为所有主要桌面操作系统构建应用程序,目前支持 Windows/macOS/Linux 等平台。开发者通过 Tauri 几乎可以使用任何编译为 HTML、JS 和 CSS 的前端

2022-04-11

开发者联盟APP功能上线! 体验APP新功能,freelace耳机等你来拿!>>>>> Neovim 0.7 目前正处于稳定化阶段,预计在 4 月 15 日发布。 主要变化 新增 lua 自动命令 新增 lua keymap API 新增 lua 命令 API 支持全局命名空

2022-01-25

Stack Overflow 方面宣布将在 2022 年 3 月 31 日停用该平台的 Jobs 和 Developer Story 功能模块,包括所有的工作列表、保存的搜索、申请、消息、推荐的工作匹配、招聘广告、开发者故事、保存的简历和工资计算器。 早在 2021 年 4

2021-11-19

curl 创始人兼首席开发者 Daniel Stenberg 昨日发表了一篇吐槽苹果的博客,原因是当用户向苹果寻求帮助时,苹果直接回复用户让他自行联系 curl,然后提供了 curl 的帮助页面地址。 Daniel 说道:“想象一下,一家价值万亿美

2022-07-06

选项以自定义内联模型的命名规则 #12562 添加处理和使用模型测试用例的能力,在新的 v3.0.3 单元测试规范中使用它 #12619 C [C][Client] 设置 null json 的默认值#12620 [C][Client] 支持自由形式的对象#12557 C# [csharp-n

2022-09-15

io,并将成为维护者社区的资源。 OpenSSF 曾在其今年早些时候发布的 10-Point Open Source Security Mobilization Plan 中建议,业界应该努力消除许多漏洞的根源,方法是用 Rust 和 Go 等语言替换 C 和 C++ 等非内存安全

2022-08-25

用 Java(或 C++)的子集编程的,但如果有人在编写 Arduino 项目时寻求帮助,给他们一本关于 Java 的书的用处有限。另一方面,有很多书籍的标题类似于《Writing Arduino Programs Made EZ》,因此 Arduino 语言被单独列出。另一方面,将 Mic

2022-09-22

历经三年开发,Bytecode Alliance(字节码联盟)宣布 WebAssembly runtime —— Wasmtime 1.0 正式发布,并可用于生产环境。 Bytecode Alliance(字节码联盟)由 Mozilla、Fastly、Intel 与 Red Hat 联合成立,是一个推动 WebAssembly 标准化的组织

2022-02-25

《Sustainability with Rust》。 在这篇文章里,AWS 举例的时候将 Rust 和 Go 进行了对比。文章提到了早期 Discord 的一项关键 Go 服务存在问题,原本这是一个非常简单的服务,但它的尾部延迟 (Tail Latency) 非常慢。AWS 认为原因在于 G

2022-09-15

体验 优化 验证文件后缀放到最前面验证,防止秒传的时候没有验证文件后缀 优化 数据大屏动态查询接口,输出执行状态等错误信息 优化 消息推送接口,在特殊场景下的健壮性 优化 BPM 下一步处理人,多选情况下