为什么 C 语言仍然占据统治地位?( 四 )

此外 , 与C相比 , C ++在持续地更加积极地扩展 。 即将推出的C ++ 20会带来更多功能供开发者享用 , 包括模块 , 协同程序 , 同步库 , 以及概念 , 这些使模板更易于使用 。 C standard的最新版本只进行了少量更新 , 并侧重于保持向后兼容性 。

事实上 , C ++中的所有附加功能同样也可能成为累赘 。 而且是很大的累赘 。 您使用的C ++专属功能越多 , 引入的复杂度就越高 , 对结果的修正就越困难 。 将自己局限于仅一个C ++子集的开发人员可以避免许多开发中严重的坑和额外负担 。 但是有些团队想要从根儿上防范C ++的过度复杂性 。 坚持使用C能迫使开发人员将自己局限于一个子集 。 例如 , Linux内核开发团队就直接避开了C ++ 。

选C而不选C++对您——以及任何将会维护你代码的开发人员——来说都是可行的 , 通过采用强制简约主义来避免与C ++的复杂性纠缠 。 当然 , C ++拥有丰富的高级功能 , 这是有它自己的道理的 。 但如果极简主义更适合当前和未来的项目——以及负责项目的团队——那么还是选C更明智一些 。

推荐阅读