
C++
作为一个从业多年的程序员,我想分享一些经验:从你的问题来看,你可能还比较年轻。其实,每种编程语言都有其特定的定位。
C++ 更倾向于底层开发,而
Java 和
Python 则处于更高的抽象层次。就像许多行业有上下游之分一样,不可能所有人都只做
手机,却没人去做芯片。
C++ 标准库中缺失的部分完全可以由第三方库来补充。它的标准库提供的是底层、粒度较小的 API,比如没有内置的图形库,但你可以通过使用 Qt 或 MFC 等工具来实现这些功能。而
Java 有 Swing 和 AWT 这样的图形库,但这并不意味着它们被广泛使用。同样地,如果
C++ 的标准库过于臃肿,你可能又会觉得它实现得太低级,从而拒绝使用。高层抽象库及其 API 的优劣往往难以评判,因为它们不仅考虑效率,还要兼顾软件工程的设计原则。很多时候,这些问题并没有绝对的答案,不像实现一个排序算法那样简单明了——只要快就行。类似的情况也可以在 C 语言中看到。C 的定位更加底层(注意是底层,而不是低级),它的库比
C++ 还要匮乏。然而,仍然有很多开源项目在使用 C,例如 Nginx。你可以这样理解:一台机器上可能会运行多个基于
Java Web 的网站,但只需要部署一个 Nginx。这就是不同语言的定位差异。每个网站的代码肯定各不相同,但 Nginx 安装完成后基本不会改变。C/
C++ 通常应用于基础设施层面,就像高速公路一样;而
Java、
Python 这类基于更高层次抽象的语言,则更多用于构建在基础设施之上的各种应用,就像跑在路上的
汽车。
汽车每年都会生产很多新款,但高速公路并不会频繁新增,尽管如此,公路依然是不可或缺的。实际上,
C++ 的标准库一直在扩展,但它对纳入新内容持非常谨慎的态度。一般某个功能会在 Boost 库中经过几年的验证后,才有可能被纳入标准库。我想分享一些网络上关于
C++ 的高赞观点和个人见解,希望能对你有所启发,让我们一起成长!如果你觉得有帮助,请记得关注我 @码农出击,点个赞支持一下!