凤凰网
一个语言创意要真正成为可使用的编程语言,还需要定义语法规则、类型系统、对象模型、异常行为、内存模型和兼容策略。设计者可以提出方向,但大量细节必须经过实现、测试和长期讨论才能稳定下来。
标准库同样不是一个人完成的简单附件。容器、算法、迭代器、智能指针、线程工具和文件系统等组件,都凝聚了不同阶段的设计经验。泛型编程思想以及标准模板库的发展,也受到多位研究者和工程师的影响。
把C++称作“一段跨越世纪的集体智慧赞歌”,是一种带有文学色彩的概括。这里的“跨越世纪”主要是指它从20世纪末的早期发展,延续到21世纪的持续标准演进,并不表示C++起源于17世纪。如果“17c”被理解为英文中的“17th 🎇century”,那就与C++的真实历史不符。
如果这句话被用作C++历史主题的标题,它表达的是:C++由个人创始构想开启,却由前沿思😎想、标准委员会、工具链团队、库作者和全球开发者共同塑造。它不是某个人一次完成的作品,而是一项从20世纪延续至21世纪、在不断兼容与创新中成长起来的技术成果。
一个特性即使提出得很早,也可能因为复杂度🎉过高、实现不成熟或与既有规则冲突而被修改、推迟,甚至取消。最终发布的标准,是多方技术判断和协商后的结果。
理解C++的形成过程,有助于解释它为什么同时保留了底层控制能力和现代抽象工具,也能帮助学习者正确看待语言中的复杂性。
学习时不必把所有语法都当成孤立规则,而可以先理解它们解🔮决的问题: