pol*_*mon 39
关于这一点已经有很多讨论。主要是一个哲学上的原因。C 被发明为一种用于系统开发(而不是应用程序开发)的简单语言。使用 C++ 有很多争论,但不使用 C++ 并坚持使用 C 的争论也差不多。
归根结底,这是一个历史问题。大多数应用程序的东西都是用 C 编写的,因为大多数内核的东西都是用 C 编写的。而且从那时起大多数东西都是用 C 编写的,人们倾向于使用原始语言。
此时,有人可能会问:“好吧,为什么内核是用 C 编写的,而不是移植到 C++?” . 前段时间在 kerneltrap上已经讨论过这个问题。可以从该线程引用的一个很好的解释是yoshi314 的回复(直接引用):
这是因为几乎每个 c++ 应用程序都需要一个单独的 c++ 标准库来运行。所以他们必须将它移植到内核,并期望在任何地方都有额外的开销。
c++ 是更复杂的语言,这意味着编译器可以从中创建更复杂的代码。因此,发现问题源于编译器错误,而不是在 c 中更容易出现代码错误。
此外,c 语言更加准系统,并且更容易遵循其汇编表示,这通常很容易预测。
c++ 更通用,但 c 更适合低级或嵌入式的东西。
另一方面,“大多数 Linux 程序”具有误导性。看看图形应用程序。Python 越来越受欢迎,尤其是在 Linux 上的 GUI 环境中。与 Windows 和 .NET 发生的事情大致相同。
小智 11
在阅读了来自 Linux 创始人 Linus Torvalds 的以下电子邮件后。我不禁认为上面的答案是不正确的。他似乎认为 C++ 程序员不是好的系统程序员。而且,与它们在短期内带来的好处相比,C++ 中的额外功能在长期内通常会导致更多问题。虽然人们可能不同意他的观点,但很难夸大他对 linux 操作系统的影响。
http://harmful.cat-v.org/software/c++/linus