为什么大多数Linux程序都是用C编写的?为什么不使用较新的C ++编写?
为什么大多数Linux程序都是用C编写的?为什么不使用较新的C ++编写?
Answers:
关于此有很多讨论。原因主要是哲学上的原因。C被发明为一种用于系统开发的简单语言(不是那么多应用程序开发)。关于使用C ++的争论很多,但是关于不使用C ++并坚持使用C的争论也很多。
最后,这是一个历史问题。大多数应用程序用C编写,因为大多数内核用C编写。从那时起,大多数应用程序用C编写,所以人们倾向于使用原始语言。
此时,有人可能会问:“好,那为什么用C编写内核而不移植到C ++?” 。前一段时间在kerneltrap上对此进行了讨论。可以从该线程引用的一个很好的解释是yoshi314的响应(直接引用):
那是因为几乎每个c ++应用程序都需要一个单独的c ++标准库来运行。因此他们将不得不将其移植到内核,并期望到处都有额外的开销。
C ++是更复杂的语言,这意味着编译器会从中创建更复杂的代码。因此,在c中更容易发现问题源于编译器错误,而不是代码错误。
C语言也更准,而且易于遵循其汇编表示形式,这通常很容易预测。
c ++更具通用性,但c更适合于底层或嵌入式工具。
另一方面,“大多数Linux程序”具有很大的误导性。看一下图形应用程序。Python的应用越来越广泛,尤其是在Linux上的GUI环境中。与Windows和.NET发生的事情差不多。
在阅读了Linux的创建者Linus Torvalds的以下电子邮件之后。我不禁以为上面的答案是不正确的。他似乎认为C ++程序员不是优秀的系统程序员。与从短期来看,C ++的额外功能相比,从长期来看,它们经常会引起更多的问题。尽管有人可能不同意他的观点,但很难夸大他对Linux操作系统的影响。
C++
比较新C
,但这有点无关紧要。他们是不同的语言。