广州日报
标准库同样不是一个人💪完成的简单附件。容器、算法、迭代器、智能指针、线程工具和文件系统等组件,都凝聚了不同阶段的设计经验。泛型编程思想以及标准模板库的发展,也⭐受到多位研究者和工程师的影响。
把C++称作“一段跨越世纪的集体智慧赞歌”,是一种带有文学色彩的概括。这里的“跨越世纪”主要是指它从20世纪末的早期发展,延续到21世纪的持续标准演进,并不表示C++起源于17世纪。如果“17c”被理解为英文中的“17th century”,那就与C++的真实历史不符。
所以,“并非一人之笔”并不是否定斯特劳斯特鲁普的贡献,而是避免把一门复杂语言的全部历史简化成个人传记。个人可以点燃起点,但长期🎨可用❤️的技术体系通常需要许多人的接力。
从时间线来看,C+🎆+的形成并非一次性完成,而是经过了多次重构、推广和标准化。下面的阶段能够说明它为什么具有明显的集体创作特征。
一个特性即使提出得很早,也可能因为复杂度过高、实现不成熟或与既有规则冲突而被修改、推迟,甚至取消。最终发布的标准,是多方技术判断和协商后的结果。
20世纪70年代末,斯特劳斯特鲁普在贝尔实验室开始研究一种能够支持抽象数据类型和面向💪对象思想的语言。这个项目最初被称为“C with Classes”,后来逐步发展为C++。他希望在保留C语言效率和底层控制能力的同时,引入更适合大型软件开发的抽象机制。
一个语言创意要真正成为可使用的编程语言,还需要定义语法规则、类型系统、对象模型、异常行为、内存模型和兼容策略。设计者可以提出方向,但大量细节必须经过实现、测试和长期讨论才能稳定下来。
C++标准并不是某位作者的私人文档。它由相关国际标准化组织下的专家委员会进行讨论、提案、审查和修订。来自不同国家、企业、大学和开源项目的参与者会围绕一个功能的必要性、语义、实现📚成本以及向后兼容📚问题展开长期讨论。