Hacker News 中文摘要

RSS订阅

保持卷曲的挑战 -- The challenge of maintaining curl

文章摘要

Daniel Stenberg在2025年欧洲开源峰会上分享了维护curl项目的挑战。尽管curl是一个小项目,但其影响广泛,自1996年启动以来,代码量已增长至18万行,由1400名作者贡献。目前每月有20-25名开发者活跃参与,但Stenberg是唯一的全职员工,面临的压力日益增加。

文章总结

标题:维护curl的挑战

在2025年欧洲开源峰会上,curl项目的维护者Daniel Stenberg在短短的15分钟内分享了许多关于该项目面临的挑战。curl是一个始于1996年的小型项目,最初只有100行代码,如今已发展到18万行代码,由1400名作者贡献。尽管curl被广泛应用于至少10亿台设备中,但支持其开发的公司却寥寥无几。

Stenberg指出,许多公司认为开源软件的开发费用由他人承担,因此他们无需贡献。虽然curl以自由许可证发布,这些公司的行为在法律上没有问题,但他呼吁这些公司应更多地考虑他们所依赖软件的未来。

开源软件的维护工作繁重,大多数项目只有一个维护者,且通常是在业余时间无偿工作。维护工作包括处理安全问题、审查补丁、编写文档、维护网站、管理邮件列表等。偶尔有时间时,才能进行一些功能开发。

公司的一些行为加剧了维护的难度。例如,苹果公司将客户的问题转交给curl项目处理,而一些公司则要求提供项目开发和安全实践的信息,通常要求快速回复。Stenberg通常通过发送支持合同来回应,但往往再无下文。最近,欧洲公司还要求提供curl项目符合《网络弹性法案》的信息。

此外,Stenberg还收到了大量无用的电子邮件,包括威胁邮件和来自汽车用户的求助邮件。最近,越来越多的人使用大型语言模型“发现”curl中的问题,并发送错误报告,这占用了大量时间。

curl项目还面临着来自AI公司的分布式拒绝服务攻击,这些攻击消耗了大量带宽,增加了项目的维护难度。

尽管如此,Stenberg也收到了一些温暖的感谢信,例如一位11岁孩子对curl在其项目中的帮助表示感谢,这让他感到欣慰。

[感谢Linux基金会作为LWN的旅行赞助商,支持我们参加此次活动。]

评论总结

  1. 开源软件的资金支持问题

    • 观点:大公司使用开源工具但不愿贡献资金。
    • 论据:kamaal指出,大公司应赞助维护费用,尤其是当它们依赖这些工具时。
      • "I think if you are a billion dollar company using these tools, sponsoring maintenance isn't a lot to ask."
      • "Heck internet was made possible because of Perl."
    • 论据:Sovereign Tech Agency为项目捐赠了20万欧元。
      • "The Sovereign Tech Agency (German federal government) donated about 200k€ to the project."
  2. AI生成内容的滥用

    • 观点:AI生成的内容被误用,导致无效的“安全研究”。
    • 论据:angst提到,有人用AI生成错误的问题报告,误以为在帮助项目。
      • "There is an increasing crowd of people who ask a large language model to 'find a problem in curl, make it sound terrible'."
    • 论据:nurettin建议解雇提交AI生成内容的“安全研究员”。
      • "Just have a policy of firing these 'security researchers' whenever they submit AI generated BS to curl."
  3. 开源项目的“影响力”评估

    • 观点:建议建立开源项目的“影响力”评分系统,以指导资金投入。
    • 论据:dcsommer提出,通过使用情况和依赖关系评估开源库的影响力。
      • "It would be cool to build a 'library clout' measure for all open source software."
      • "This clout score might be used to guide investments in a non-profit for funding critical OSS."
  4. AI在开发中的使用

    • 观点:AI可以作为开发工具,但必须验证其结果。
    • 论据:rhdunn强调,使用AI生成代码时必须验证,否则可能导致错误或维护困难。
      • "You can use LLMs as part of the process of identifying bugs, developing features, etc. but you must verify the results."
      • "Accepting what the LLM says without testing, checking, and verifying the output is lazy."
  5. 开源项目的资金筹集策略

    • 观点:通过改变许可证或众筹来筹集资金。
    • 论据:kibwen建议通过GoFundMe筹集资金,并威胁将许可证改为AGPL。
      • "Step 1: Set up a GoFundMe. Step 2: Announce that, until the aforementioned GoFundMe reaches $10 million, all new commits to curl will be licensed under the AGPL."

总结:评论主要围绕开源软件的资金支持、AI生成内容的滥用、开源项目的影响力评估、AI在开发中的使用以及资金筹集策略展开。大公司应更多贡献资金,AI生成内容需谨慎使用,开源项目的影响力评估有助于资金分配,AI工具需验证结果,而改变许可证或众筹可能是筹集资金的有效策略。