首页 游戏 软件 资讯 排行榜 专题
首页
科技数码
Go数据打脸刻板印象:样板代码真比Rust多吗?

Go数据打脸刻板印象:样板代码真比Rust多吗?

热心网友
30
转载
2026-02-09

Go语言因其精简的特性设计,使得逻辑表达往往需要依赖显式的重复代码;而Rust选择了丰富的语言特性(宏、泛型、Trait),其结果则是开发者必须编写大量的结构性代码来支撑这些特性。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

大家好,我是Tony Bai。

在编程语言的鄙视链中,Go语言常因其看似“繁琐”而饱受诟病。

“if err != nil写到手断”、“缺少语法糖”、“到处都是重复的样板代码”……这些几乎已经成了Go的标志性吐槽。

相比之下,Rust则常被视为“表达力”的代表,拥有强大的宏、模式匹配和类型系统,被认为能用更少的代码做更多的事。

然而,Ben Boyter最近的一项硬核研究,通过分析GitHub上各语言Top 100仓库(总计约4亿行代码),得出了一个令编程社区大跌眼镜的结论:

在代码重复率和“样板代码”密度上,Go和Rust几乎处于同一水平线。

不仅是行数:ULOC 指标

传统的SLOC(源代码行数)往往无法真实反映项目的复杂度和冗余度。Ben Boyter使用了他开发的工具scc中的一个特殊指标:ULOC (Unique Lines of Code,唯一代码行数)。

ULOC指标并非简单的“全量去重”,而是通过剥离“结构性噪音”来更精准地衡量系统的真实复杂度。其计算逻辑是:

剔除结构化冗余:不仅排除了空行,还排除了单纯的闭合大括号行(})以及在不同文件中大量出现的公共引用代码(如include或import)。过滤文件级模板:有效识别并扣除在项目中每个文件顶部几乎完全相同的License(许可证)声明头,避免这些非逻辑性的“样板文字”虚增代码总量。计入注释成本:与传统SLOC不同,ULOC会保留注释统计。作者认为,注释与代码一样需要同等的维护精力,反映了开发者的思考过程,因此属于“有效工作量”。

通过这种方式计算出的Dryness(干度),代表了剔除了“语法支架”和“版权模板”后,真正的业务逻辑与注释在代码中的占比。百分比越高,说明重复代码越少,信息密度越高;百分比越低,说明“样板代码”或重复结构越多。

令人震惊的对比:Go vs Rust

让我们直接看数据(数据来源:GitHub Top 100 仓库分析,2026年2月):

发现了吗?Rust (60.5%) 和 Go (58.78%) 的差距微乎其微,甚至可以说在统计学上是等价的。

Ben Boyter在文章中坦言,他之前也持有“Go的样板代码比Rust多得多”的刻板印象。但数据表明,虽然两者的“啰嗦”方式不同,但结果是一样的:

Go的啰嗦:体现在显式的错误处理、显式的循环结构,以及为了简单性而不得不写的重复逻辑。Rust的啰嗦:体现在复杂的类型系统设置、Trait的实现(impl blocks),以及为了满足借用检查器而编写的“仪式性”代码。

正如作者所总结的:

Go狂热者:“Go很简单!” -> “是的,简单到你需要把同一件事写很多遍。” Rust狂热者:“Rust表达完美!” -> “是的,但你花了40%的时间在写setup代码和trait实现。”

其他颠覆性的发现

除了Go和Rust的“握手言和”,这份报告还有几个极具冲击力的发现:

1. Lisp 家族是“干度之王”

Clojure 以 77.91% 的惊人密度位居榜首。Haskell 紧随其后。

这验证了一个古老的观点:如果你想要最高的“人类思想 vs 击键次数”比率,Lisp和函数式语言依然是王者。它们几乎每一行代码都是纯粹的业务逻辑。

2. Java 居然比 Go 和 Rust 都“干”?

Java的得分为65.72%,显著高于Go、Rust和C#。

这听起来反直觉,毕竟Java以PublicStaticVoidMain这种冗长著称。但这可能说明:现代Java及其生态(Spring等)通过注解等方式极大地消除了样板代码。或者,Top 100的Java项目多为成熟的业务系统,核心逻辑占比大,而Go/Rust项目中系统级代码(通常包含更多底层重复逻辑)较多。

3. 脚本语言的特性

Shell Script的密度极高(72.24%),但这主要是因为Shell脚本通常很短且高度定制化(Bespoke),很难复用,因此“唯一性”很高。

小结:复杂度的守恒

这个研究告诉我们一个道理:语言特性(Features)并不一定能消除复杂度,它往往只是转移了复杂度。

Go选择了少量的特性,导致逻辑必须通过显式的重复代码来表达;Rust选择了丰富的特性(宏、泛型、Trait),导致开发者必须编写大量的结构性代码来支撑这些特性。

对于Gopher来说,这或许是一种宽慰:别再为if err != nil感到羞愧了。隔壁写Rust的兄弟,虽然代码看起来很酷,但他们为了让编译器开心而敲击键盘的次数,并不比你少。

来源:https://www.51cto.com/article/836117.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

联想承诺:Z1 Extreme版Legion Go将获支持至2029年
游戏资讯
联想承诺:Z1 Extreme版Legion Go将获支持至2029年

3月3日消息,近日,有关联想初代Legion Go将停止驱动支持的消息闹得沸沸扬扬,起因是一份据称来自联想韩国客服的消息,甚至传出AMD将终止为锐龙Z1 Extreme设备开发驱动的说法。针对这一传

热心网友
03.03
MWC2026:联想发布Legion Go Fold可折叠概念掌机
科技数码
MWC2026:联想发布Legion Go Fold可折叠概念掌机

3月2日消息,在主题为“ 智能新纪元”(The IQ Era) 的西班牙巴塞罗那MWC2026上 ,联想集团用一系列创新AI硬件产品展⽰了AI规模化落地的最新进展:从桌面工作伙伴到可进化形态的AI

热心网友
03.02
联想确认Legion Go掌机驱动已无后续更新计划,建议用户维持当前版本
游戏资讯
联想确认Legion Go掌机驱动已无后续更新计划,建议用户维持当前版本

2月23日消息,据媒体报道,从多个渠道透露出的信息来看,AMD似乎已经不再为Ryzen Z1 Extreme提供驱动程序更新了,联想Legion Go掌机面临无法更新。有其他同样使用这款芯片的设备用

热心网友
02.24
Supercell CEO揭秘:中日韩开发者如何打造爆款手游
科技数码
Supercell CEO揭秘:中日韩开发者如何打造爆款手游

2月11日消息,近日,Supercell CEO Ilkka Paananen发布2025年度公开信,其表示,公司研究发现,全球2020年以来发布的移动游戏有约5 3万款,其中只有22款(约0 04

热心网友
02.11
锐评九大Go Web框架:从敦实到丝滑的实战选型指南
科技数码
锐评九大Go Web框架:从敦实到丝滑的实战选型指南

如果说Gin是把瑞士军刀,Echo就是把手术刀。它的文档可能是我见过的框架里写得最好的之一。性能比Gin还稍微强那么一点点,关键是代码写起来真的很干净,绑定数据(Binding)那块做得比Gin顺手

热心网友
02.10

最新APP

暗黑之地
暗黑之地
角色扮演 03-28
你比我猜
你比我猜
休闲益智 03-26
锦绣商铺
锦绣商铺
模拟经营 03-26
儿童画画
儿童画画
休闲益智 03-25
疯狂猜词
疯狂猜词
休闲益智 03-25

热门推荐

苹果18 Pro屏幕盖板偷跑:灵动岛缩水实锤
iphone
苹果18 Pro屏幕盖板偷跑:灵动岛缩水实锤

3月28日消息,iPhone 18 Pro的屏幕盖板在社交平台上意外泄露。与上一代产品相比,该机最直观的改变莫过于灵动岛面积的显著缩小。根据博主的最新爆料,iPhone 18 Pro的灵动岛挖孔区域

热心网友
03.28
Excel漏斗图制作方法:5步搞定销售转化率分析
电脑教程
Excel漏斗图制作方法:5步搞定销售转化率分析

漏斗图是Excel中展示销售流程各阶段转化率变化的专用图表。方法包括:一、Excel 2016+内置漏斗图;二、条形图模拟(全版本兼容);三、Power BI嵌入(高交互);四、条

热心网友
03.28
Jungle Scout报警设置教程:避免库存风险,精准监控竞品
手机教程
Jungle Scout报警设置教程:避免库存风险,精准监控竞品

在电商运营中,及时掌握产品动态至关重要,而junglescout的产品监控警报功能就能帮您实现这一点。下面就为您带来入门指南。一、开启警报功能首先,登录您的junglescout账

热心网友
03.28
星穹铁道火主配队攻略:四套高胜率阵容推荐
游戏攻略
星穹铁道火主配队攻略:四套高胜率阵容推荐

《崩坏:星穹铁道》火主配队推荐:推荐一为火主+希儿+布洛妮娅+停云,火主承伤破盾,希儿主C爆发,布洛妮娅拉条增伤,停云回能加攻,适合BOSS战与高难副本。推荐二为火主+艾丝妲+青雀

热心网友
03.28
《你好1983》:夏梓玉与王建华的隐秘纠葛及其重生之谜
娱乐
《你好1983》:夏梓玉与王建华的隐秘纠葛及其重生之谜

从杜兆辉那里,夏晓兰知道堂姐夏子玉这几年的遭遇。成了逃犯后,夏子玉靠着那张介绍信逃到盛城,花光所有积蓄偷渡去港岛。因为不会说粤语,又没有身份,根本找不到工作。在地头蛇的连哄带骗下,夏子玉成为港岛街头

热心网友
03.28