我喜欢和不喜欢的C++特点

我喜欢C++把我当成年人对待:

在C++设计中有一条原则,那就是:无论做什么事情,都要相信程序员。与可能出现什么样的错误相比,能做出什么好产品更重要。C++程序员总是被看作成年人,只需要最少的看护。

C++之父的《C++语言的设计与演化》

我不太喜欢别人管着我,因为事情做的好不好是我自己的事,如果我的工具担心我做不好事,就给我灌输一大堆原则、理念,骑在我脖子上,这也不让我做,那也不让我做,必须如何如何做才行……那我就有点不开心。

但我也能理解,很多人就是要被管着,才能做把事情做好(这句话是废话,删掉)。

我喜欢C++的零成本抽象:

  • 你没有用到的东西,你不会为它支付代价。

  • 你抽象出的东西,应尽量与不抽象时的开销相同或更好。

  • 你优化的局部代码,不应该带来整体开销。

我喜欢C++的多范式编程特性:

我喜欢面向对象和函数式编程,我的代码中这两种编程风格融合的很好,很多库开发者喜欢泛型编程和元编程,还有一些老代码是遵循面向过程编程的。

无论怎样,C++在各种编程范式下都能运作得很好。

我喜欢C++是因为它已是现代软件大厦的基石:

你看Skia、MySql、Chromium等等都是C++搞得,而且学会C++就几乎等于学会了C,C++项目基本可以无痛的使用任何C语言开发的库。

其他语言肯定也有办法使用这些库,但假设你遇到一个底层问题,你能看懂这些库的源码吗?

如果你认为这些库都非常成熟,不会有什么问题,那么我建议你去看看它们的issue列表和提交记录。

我不喜欢C++背着我帮我做事

C++标准库的容器、coroutine等工具有时会背着我在我的堆上分配内存。这增加了我的心理负担,让我有些苦恼。

这或许是因为我太菜,但zig语言的作者也认为C++在这方面做得不好。

C++标准库还有点弱

标准库在异步(易用性)、反射(编译期)、协程、时间(时区)等很多方面都比较弱。甚至有些地方还有坑。

另外,如果标准库能对网络,加解密提供支持就更好了。

C++没有一套统一的库管理工具

我很少用vcpkg、Conan这样的库管理工具,用到什么库都是自己编译,但编译时用到的工具也不统一,像CMake、GN、Ninja、Meson等等。让我备受其扰。

你可能感兴趣的:(c++,开发语言)