写点什么

架构之书:雄心与《C++ 语言的设计与演化》

用户头像
lidaobing
关注
发布于: 2020 年 12 月 12 日
架构之书:雄心与《C++语言的设计与演化》

《C++语言的设计与演化》是 C++之父 Bjarne Stroustrup 写的一本书,主要讲 C++ 为什么会演成 C++98 的样子。


在语言层面,C++差不多算是最复杂的一门语言,支持多种抽象模式,同时又没有任何性能损失。作者大致讲了这么设计的原因,在他的观点里边,混合语言编程是一种错误的实践,尽管当时有一些 C/Fortran/Pascal 混合编程,相互链接的技术,但作者认为这不可能成为主流。按照他的推断,一个工程,不管是性能苛刻的部分,还是业务复杂的部分,都需要用同一种语言来实现,所以需要一种语言既支持高性能编程(零抽象成本),也支持合理的抽象来简化业务的开发。


在 SOA 大规模推广之前,这个断言基本上是对的。SOA 出现之后,我们把性能苛刻以及其他公共的部分抽象成中间件,而业务部分则用 Java,C#等语言来实现,放弃了对性能的极致追求。


在 C++ 密集开发的时代(199x 年),跨进程的调用/通信其实成本很高,我日常能看到跨进程业务的要么是轻量 unix pipeline,要么是类似 BBS 那种共享内存模式,今天大家熟悉的 RPC 模式其实很罕见。


C++的雄心是成为计算机语言的标准,这个雄心当时几乎实现了,在整个 Windows 环境,从内核(NT 内核以 C 为主,但用户模式的代码以 C++为主)到应用程序,几乎都是用 C++来实现的;在 Linux,C/C++也覆盖了绝大多数程序;对于程序员来说,学编程也意味着学 C++。只不过随着跨进程、跨节点通信成本的逐步降低,以及 CS/BS 模式需求的大规模增加,C++的劣势越来越明显,不仅 C 的优势领域没抢下来,自己的优势领域还越来越少,仅剩的一点优势领域也在逐步被 golang/rust 语言蚕食。


题图:Jacques-Louis David 的 Napoleon Crossing the Alps

发布于: 2020 年 12 月 12 日阅读数: 96
用户头像

lidaobing

关注

还未添加个人签名 2017.10.18 加入

还未添加个人简介

评论

发布
暂无评论
架构之书:雄心与《C++语言的设计与演化》