Hacker News 中文摘要

RSS订阅

我对Bun Rust重写的看法 -- My thoughts on the Bun Rust rewrite

文章摘要

作者回顾了Bun项目创始人Jarred从Zig社区起步的经历,指出其具有“初学者能量”的快速试错风格。Jarred通过Thiel Fellowship而非大学教育,接受了硅谷思维,最终为Bun项目引入风险投资,并公开感谢Zig语言对项目性能的贡献。

文章总结

好的,作为一名专业的中文编辑,我将对这篇英文文章进行中文重述,保留核心细节,并删减与主题无关的冗余内容。


关于Bun从Zig重写为Rust的思考

背景与历史

大约五年前,Jarred(Bun的创始人)加入Zig社区时,我形容他带有强烈的“新手能量”。他行动迅速,勇于尝试,一头扎进自己尚不擅长解决的问题中。虽然这导致工程成果平庸,但他在这个过程中学到了大量知识。我认为这对年轻人和学生来说是一种非常健康的态度,是快速成长的最佳途径。

当Jarred专注于Bun项目后,他吸引了大量关注。作为全球最流行编程语言JavaScript的新工具链,Bun潜力巨大。这种关注本可以多种方式利用,例如通过众筹轻松获得体面收入。但他深受硅谷思维影响,最终选择了风险投资。

起初,Jarred对Zig项目心怀感激。他在Bun网站上将其性能归功于Zig,并每月向Zig软件基金会捐赠,年总额达6万美元。这些举动并非必需,但他做了,这非常酷。即使在宣布重写的博文中,他也表达了对Zig的真诚感谢。

然而,一旦Bun成为风投支持的初创公司,情况就变了。Jarred开始为冲刺终点线而狂奔,从与社区共同成长的开源项目维护者,变成了经营企业的管理者。当他突然成为经理时,这种“新手能量”开始让我感到不适。一个人选择糟糕的工作生活平衡是一回事,但要求他人也如此则是另一回事。Oven公司(Bun的母公司)曾公开表示:“Oven将是一场苦战,尤其是前九个月。如果工作生活平衡意味着大量不工作的时间,那可能不太适合。”

人们私下交流频繁。我与面试过Oven职位的人、在那里工作过的人都聊过。大家口口相传,传递着同一个信息:Jarred是个糟糕的经理——沟通不畅、期望不切实际、缺乏同理心、毫无经验。从雇佣角度看,这完全是一场灾难。因此,尽管Zig社区成员渴望找到用Zig编码的工作,但大多数人才都避开了Oven和Bun。

与此同时,Zig与Jarred之间的裂痕也在扩大。他专注于生产力和初创公司退出策略,与我为Zig项目制定的长期愿景日益冲突。我记得他不断催促我放弃所有其他优先事项,去实现语言服务器协议和VSCode集成,而我有更宏大的计划。

但主要问题在于代码质量。Zig团队定期检查用户项目,阅读源代码以了解语言对用户的影响。我们在Bun的代码库中看到了令人震惊的编程实践:层层堆叠的hack、滥用断言、以及为了快速推进功能而几乎不花时间反思和消除bug与技术债务。Jarred在获得大语言模型辅助之前,就已经在编写“潦草”的代码。我们并非要监管用户,但人们总在指责Zig的内存安全问题。我们自然希望与一个因不负责任的工程实践而招致此类批评的项目保持距离。

我们曾试图引导他们走向更好的编程实践,但收效甚微。到那时,ZSF(Zig软件基金会)的所有人都认为Bun是一个净负债。这甚至发生在RoboBun(AI机器人)成为Bun的第一大贡献者之前。作为Zig语言的“门面”项目,Bun实际上却是“如何不写Zig代码”的典型反面教材,这让我们感到不适。而且,一旦他们被收购(其模糊的“卖云服务”商业计划从一开始就是一场闹剧),我们也会因间接关联而遭受负面舆论,并失去那笔定期捐款。

因此,当Bun被Anthropic收购时,ZSF的我们都松了一口气。当捐款悄然停止时,我们的银行账户已做好准备。当他们既未取消与我们每月例会,也未出席时,我们毫不意外。关系已经结束。重写的迹象早已显现,甚至在收购后几天内,我们就怀疑会转向Rust。我们甚至支持这个决定!被大型AI公司收购是一种负担,因为Claude(Anthropic的产品)由Bun驱动、Bun由Zig编写,这种间接关联不仅带来了大量低质量的AI生成贡献,还让品味低下的AI爱好者涌入Zig社区。我一度担心Zig会被通俗地称为与AI相关的编程语言。当Jarred宣布用Rust重写时,我们欣喜若狂,这好得令人难以置信。我承认,我原本认为技术上无法实现,但他做到了。现在,我就像在喝着美味的茶,茶杯上写着“这味道就像它不再是我的问题了”。

对重写博文的回应

那篇博文写得非常专业,几乎像是一家万亿市值公司的营销部门在背后操刀。但我仍有几点异议。

博文提出了一种二元对立:要么选择“风格指南”,要么选择编程语言特性来避免bug。这是一种误导,将读者注意力从消除bug的主要方法上移开——即投入工程资源。博文对TigerBeetle(另一个Zig项目)的赞誉远远不够。简单来说,他们投入了时间来发现和消除bug,努力与ZSF保持健康关系,而Bun没有。

博文声称,之所以能发布百万行未经审查的代码,是因为测试套件足够好,能捕捉所有问题。那么,为什么又说Zig代码中有那么多恼人的bug?测试套件不足以捕捉Zig代码中的bug,却足以捕捉百万行未经审查的“潦草”代码中的bug?这说不通。

性能提升被归因于LTO(链接时优化),而Zig从一开始就支持LTO。它曾默认启用,直到我们遇到太多LLVM的bug(这些bug同样影响Rust)。我们可能曾建议你尝试启用它,但你没听。我们有很好的建议,该死!

博文声称他们曾对Zig代码进行模糊测试,但在我们的通话中,整个Bun团队都告诉我们他们什么都没做。这似乎是彻头彻尾的捏造。

博文列举了大量为减小二进制体积所做的工程工作,以论证“Bun用Rust更好”。但这些工作与重写本身无关。我认为这正是博文花了这么长时间才发布的原因——你们在做那些从一开始就应该在Zig代码库中完成的工程工作。多年来,我们一直试图警告你们滥用comptime(编译时计算)的问题。我们甚至专门为此制作了时间报告工具,供需要审计comptime/inline使用和编译时间的项目使用。

我还注意到,博文忽略了编译速度。Zig编译器项目约有60万行代码,与重写前的Bun规模大致相当。我从头构建(清空缓存)只需16秒,随后每次增量编译只需90毫秒。重写后的Bun,相应的编译时间是多少?

我们学到了什么?

放眼全局,我想澄清几点:

  1. 我真诚地感谢Bun对ZSF的捐赠。我们已将这些钱用于支付贡献者,以继续开发Zig。
  2. 我对Jarred本人并无个人批评。他与我品味不同,对生活的追求也不同。但我认为他目前是快乐且成功的。他实现了自己想要的一切:活在他对生产力的狂热幻想中,可能已经非常富有,并拥有一定的技术名人地位。

老实说,我认为他做得很好,我对他没有恶意。

但我也很高兴我们的商业利益不再交织在一起!一旦互联网停止公开争论这次重写对Bun是好是坏(基于语言选择),我相信我们之间的互动也就此结束了。

感谢阅读我的博文。

评论总结

根据评论内容,总结如下:

主要观点与论据:

  1. 对Bun重写为Rust的批评(评分:无)

    • 评论认为Bun的Zig代码质量差,是“糟糕的Zig使用示例”(jdw64: "It felt uncomfortable that Bun was presented as a representative example of Zig... it looked more like a bad example of how to use Zig")
    • 重写后的Rust代码也被批评为“非地道的Rust”(feverzsj: "It's more like a transpile, far from idiomatic rust")
    • 有评论质疑重写是否真正完成,指出仓库中有大量未关闭的PR(tomlockwood: "Is the bun rewrite actually done? ... it looks like work on the rewrite began in early may... its more like a 2 month rewrite that is definitely not done yet")
  2. 对作者Andrew Kelley的批评(评分:无)

    • 多数评论认为文章充满对Jarred(Bun作者)的人身攻击,而非客观分析(Tiberium: "It feels like the first half of blog post is less of 'thoughts on the Bun Rust Rewrite' and more 'I don't like Jarred, he's a bad programmer and manager'")
    • 评论指出作者声称“没有个人批评”,但全文充满个人攻击(nilirl: "The whole post felt like a personal criticism of Jarred")
    • 有评论认为这种攻击性文章令人反感,甚至影响对Zig的看法(whimsicalism: "Anyone who would write an article like this is much more distasteful to me than anything Jarred did")
  3. 对AI和VC文化的争议(评分:无)

    • 评论认为Bun被Anthropic收购后,重写成为AI营销工具(rvz: "Even Andrew knew that this was going to be Anthropic's marketing opportunity for AI to rewrite Bun from Zig into Rust")
    • 有评论支持作者对硅谷VC文化的批评(vincent-uden: "I for one appreciate a public figure with a wildly opposed mindset to the Silicon Valley/VC-Funded/Ultrascaling/whatever crowd")
    • 也有评论认为Zig的反AI立场可能影响其未来发展(hazn: "It's hardcore Anti-AI... It doesn't have the momentum to sustain the disadvantages")
  4. 对Zig语言前景的讨论(评分:无)

    • 部分评论认为Zig可能因反AI立场和迁移到Codeberg而失去动力(hazn: "I predict Zig will lose steam, and in 2027, will lose relevance")
    • 也有评论认为Zig团队的原则值得赞赏(Decabytes: "Andrew Kelley is a principled man with good engineering sense, and has turned down opportunities that would have made him a lot more money")
    • 有评论指出Zig需要面对现实:大多数软件由企业编写,需要适应“最低共同标准”(Decabytes: "New programming languages need to contend with that reality if they want to be adopted en masse")
  5. 对文章风格的争议(评分:无)

    • 部分评论认为文章坦诚直率,值得赞赏(fwlr: "I found this post very refreshing! ... I appreciated that it was just ... genuine")
    • 多数评论认为文章结构混乱,情绪化(lifthrasiir: "this writing is badly structured and that shows something")
    • 有评论认为文章标题应改为“我对Bun Rust重写的情绪”(delegate: "A better title would be 'My emotions on the Bun Rust Rewrite', since the article feels like an emotional reaction")

平衡性总结: - 支持方:认为文章揭露了Bun代码质量问题和VC文化弊端,态度坦诚 - 反对方:认为文章充满人身攻击,情绪化,不利于Zig形象 - 中立观点:双方都有合理之处,但文章表达方式欠妥(jdw64: "Both sides have valid points, but sometimes I wish someone would turn the emotional and political dynamics of open source into a novel")