C++ 社区的知名人物 Herb Sutter 提交了一篇题为“当语言的创建者与其所有者强烈分歧时”的论文,旨在探讨语言架构师的愿景与管理其官方标准的管理机构之间的紧张关系。这一冲突集中在像 C++ 这样的主要编程语言如何演进、如何平衡技术债,以及如何应对外部压力(如对内存安全的推动)。
Sutter 关于语言所有权的论点
主要来源是 Herb Sutter 的一篇论文,该论文探讨了当帮助创建语言的个人发现自己与“拥有”其标准的委员会意见相左时所产生的特定摩擦。虽然源文件中未提供论文的完整技术论点,但标题暗示了对 C++ 所使用的治理模型的批评。
问题的核心涉及如何决定语言的方向。Sutter 的工作成为了更广泛辩论的焦点:即委员会领导的方法是否能有效地反映实际编写代码的人的实际需求。
“Herb Sutter: When a language's creator and its owners strongly disagree”
— Herb Sutter: When a language's creator and its owners strongly disagree [pdf]
标准委员会的角色
在 Hacker News 的讨论中,一些参与者认为管理机构对于语言的生存至关重要。一位以 Arainach 身份写作的评论者建议,如果没有这样的机构,语言将面临分歧(不同版本变得不兼容)或停滞,这两者都可能对编程语言造成致命打击。
这一观点将委员会视为必要的稳定器。通过提供统一的标准,委员会确保语言保持为一个连贯的工具,可以在不同平台和项目中使用,而不会分裂成不兼容的方言。
实用主义 vs. 正式治理
相反,其他评论者认为委员会可能会脱离软件开发的现实。一位以 wang_li 身份写作的评论者建议,“没有人拥有一种语言”,而且无论委员会决定什么,开发者自然会倾向于实用且必要的东西。
这一观点认为,委员会试图“拥有”语言的行为可以被视为虚伪。从这个角度来看,语言与其开发者之间的关系应由实用性定义,而不是由自上而下的治理结构定义。
这种紧张关系因外部影响而变得更加复杂。一位以 deleted_flagged 身份写作的评论者指出,C++ 面临着采用特定内存安全契约的巨大压力,据称受到 Rust Foundation 及其倡导者的影响。
语言演进中的权衡
这场辩论突显了软件工程中的一个重大权衡:稳定性与敏捷性之间的平衡。委员会提供可预测的路线图和统一的标准,这对于大规模工业应用至关重要。
然而,同样的结构也可能使语言难以快速转向或纳入那些未被委员会优先考虑但深受开发者社区欢迎的功能。讨论反映了在确保 C++ 保持现代、相关工具的同时,维护其既定标准完整性的持续斗争。
关于内存安全未解决的问题
关于 C++ 应如何处理与 Rust 等其他语言相关的内存安全问题,仍存在一个具体的争论点。一位以 eldenring 身份写作的评论者认为,内存安全的目标是防止错误随着程序规模的扩大而扩大,这表明 C++ 和 Rust 的技术要求不一定耦合。
由于 Sutter 论文的全文未包含在源文件中,他提出的旨在解决这些治理冲突的具体技术机制仍不为人知。此次讨论是社区在语言未来最佳路径上产生分歧的一个缩影。
