Go 核心团队 Russ Cox "驳斥"AWS 博文作者 :对 Go 存在严重误导!

简介: Go 核心团队 Russ Cox "驳斥"AWS 博文作者 :对 Go 存在严重误导!

2 月 23 日,Go 语言核心开发团队 Russ Cox (rsc) 在社交媒体上连发多条推文,“斥责” AWS 官方于前几日发布的一篇博文对 Go 存在着严重的误导。

image.png

据悉,AWS 官方博客于 2月 11日 发布了一篇题为《Sustainability with Rust》的文章,该博文作者为 AWS 的 Rust 倡导者兼软件工程师 Shane Miller 和 AWS 首席工程师 Carl Lerche。他们在文中对 Rust 语言在 AWS 内部发展历程以及基于 Rust 推出的一系列 AWS 产品做了回顾,并对该语言的亮点优势进行了分析和评价。

image.png

这篇博文本身分析的思路并没什么问题,但作者 Shane Miller 在文中作比较时,为了突出 Rust 的高效安全,称 Go 语言“是一种垃圾回收(GC)语言,在创建和释放对象时,垃圾收集器需要停止程序的执行并运行垃圾收集过程。”。

听到这样的评价,作为 Go 语言开发团队的 Leader, Russ Cox 自然有些坐不住了,因此要出来对该“误导”言论进行驳斥。

在 AWS 这篇博文中,作者称 Rust 是一种能将 C 等系统编程语言的性能和资源效率与 Java 等语言的内存安全结合起来的一种语言,是一种“专为开源项目而生”的语言。并透露“ Rust 将很快成为 AWS 大规模建设基础设施发展的关键”,且 AWS 正在投资 Rust 的可持续性,或将使用这种语言来构建可持续和安全的解决方案。

image.png

文中,作者还引用了此前一项用 27 种不同的编程语言实现 10 个基准问题的研究,来验证各种语言在执行时间、能耗和峰值内存使用方面的情况。

在拿其他语言如 C 、谷歌的 Go ,以及 Lua、Python、Ruby 和老版的 Fortran 等语言来与 Rust 做对比后,最终的得出的结论是:“C 和 Rust 比其他语言的效率更高,其差异的程度令人震惊” —— 比 Java 高 50%,比 Python 高 98%。

随后,Miller 强调称“Rust 不仅关乎内存安全和减少安全缺陷 —— 它是一种比 Python 和 Java 更环保的语言”。他表示,Rust 可在不存在未定义行为的风险情况下提供 C 的能源效率,即可在不损失内存安全好处的情况下将能源消耗减半。

为了证明这一点,Miller 例举了网络安全公司 Tenable 的一款应用程序的性能 —— 该应用程序以前是用 JavaScript 编写的,但现在则是用 Rust 来编写,“Rust应用程序在 CPU 性能方面对 JavaScript 造成了冲击,延迟减少了一半,CPU 使用率减少了 75%,内存使用率减少了 95%”。

此外,还有如受欢迎的信息应用 Discord 最初也是基于 Python、谷歌的 Go 和Elixir 来构建的,不过后来都开始换成用 Rust 来实现。

image.png

此时, Shane Miller 突然话锋一转,拿 Go 语言“开刀”,称其为“垃圾回收(GC)语言”的那句评价,也因此引发了开篇的“误解”:

“因为Go是一种垃圾收集(GC)语言,当对象被创建和释放时,垃圾收集器经常需要停止程序的执行并运行垃圾收集过程。当 GC 运行时,进程无法响应请求,并且在运行时可以看到CPU上的峰值和响应时间图。”

对此,Go 语言开发团队 Russ Cox 批评称:“AWS 在这里的比较,是对 Go 的一种严重的误导”。

Russ Cox 认为,AWS 的文章将两者进行对比时,将 Go 版本的数据与在使用新的数据结构和更多内存后的 Rust 版本数据放在了一起,还特意圈出“ms”和“µs”时间刻度。因此,rsc 表示,这要么是 AWS 对 Discord 的原贴存在误解,要么就是公然地说谎。

随后,由于 外媒 ZDNet 也转发了上面 AWS 这篇《Sustainability with Rust》博文,所以这也让 Russ Cox 更有必要出面来澄清事实。

这也就回到了开篇 Russ Cox 突然在 23 日连发多篇推文来进行驳斥这件事的原因。

image.png

23 日,Russ Cox 发推文转载了一篇题为《Rust vs. Go: Why They’re Better Together》的文章称:

“I wasn’t going to say anything, but since ZDNet has republished the AWS “Sustainability with Rust” blog post, a short thread about why that post is misleading (at best) about Go. ”

他表示,本来自己什么都不想说,但既然 ZDNet 已经转发了 AWS 这篇《Sustainability with Rust》的帖子,那么就有这篇(《Rust vs. Go: Why They’re Better Together》)简短的帖子来解释为什么 AWS 的文章(充其量)是对 Go 的一种误导。

他还表示,“AWS 的帖子确实对 Rust 做了一些诚实、公正的评论,这使得他们包含这些关于 Go 的误导性声明更加令人遗憾。“他们本不需要那样做,因为 Rust 足以自立。”

image.png

正如上面 Russ Cox 附上的那篇《Rust vs. Go: Why They’re Better Together》文章的观点,他强调称“就我个人而言,与其读那些假装 Go vs Rust 是某种零和游戏的博客文章,我更愿意关注 Go 和 Rust 相辅相成、可以很好地协同工作的方式。

目前,外网关于该话题的讨论也在持续上升,不少网友及开发者都已经涌入了 Russ Cox 的推文评论区留言。关于该话题的后续发展,本站也将持续关注,如果您对该话题有任何看法,也欢迎在评论区留言互动。

go

相关文章
|
XML Java 5G
Go 开发团队技术 leader Russ Cox 发文分享 Go 的版本控制历史
Go 开发团队技术 leader Russ Cox 发文分享 Go 的版本控制历史
140 0
|
XML Java 5G
Go 开发团队技术 leader Russ Cox 发文分享 Go 的版本控制历史
Go 开发团队技术 leader Russ Cox 发文分享 Go 的版本控制历史
136 0
|
JavaScript 前端开发 Go
终于!Go 1.18 将支持泛型,来听听Go 核心技术团队 Russ Cox怎么说
终于!Go 1.18 将支持泛型,来听听Go 核心技术团队 Russ Cox怎么说
164 0
终于!Go 1.18 将支持泛型,来听听Go 核心技术团队 Russ Cox怎么说
|
供应链 安全 IDE
Go 开源 12 周年:新域名 go.dev 启用|Russ Cox 发文庆贺
Go 开源 12 周年:新域名 go.dev 启用|Russ Cox 发文庆贺
149 0
Go 开源 12 周年:新域名 go.dev 启用|Russ Cox 发文庆贺
|
10天前
|
存储 JSON 监控
Viper,一个Go语言配置管理神器!
Viper 是一个功能强大的 Go 语言配置管理库,支持从多种来源读取配置,包括文件、环境变量、远程配置中心等。本文详细介绍了 Viper 的核心特性和使用方法,包括从本地 YAML 文件和 Consul 远程配置中心读取配置的示例。Viper 的多来源配置、动态配置和轻松集成特性使其成为管理复杂应用配置的理想选择。
30 2
|
8天前
|
Go 索引
go语言中的循环语句
【11月更文挑战第4天】
19 2
|
8天前
|
Go C++
go语言中的条件语句
【11月更文挑战第4天】
21 2
|
12天前
|
程序员 Go
go语言中的控制结构
【11月更文挑战第3天】
88 58
|
3天前
|
Go API 数据库
Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
本文介绍了 Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
16 4
|
3天前
|
缓存 监控 前端开发
在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统
本文深入探讨了在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统。
27 1