Linux
為什麼大多數 Linux 程序都是用 C 編寫的?
為什麼大多數 Linux 程序都是用 C 編寫的?為什麼它們不是用更新的 C++ 編寫的?
已經有很多關於這個的討論。主要是哲學上的原因。C 被發明為一種用於系統開發的簡單語言(與其說是應用程序開發)。使用 C++ 有很多爭論,但關於不使用 C++ 而堅持使用 C的爭論也有很多。
歸根結底,這是一個歷史問題。大多數應用程序的東西都是用 C 編寫的,因為大多數核心的東西都是用 C 編寫的。從那時起,大多數東西都是用 C 編寫的,人們傾向於使用原始語言。
這時,有人可能會問*“好吧,那為什麼核心是用 C 寫的,而不是移植到 C++ 上呢?”* . 前段時間在 kerneltrap上討論過這個問題。可以從此執行緒引用的一個很好的解釋是yoshi314的響應(直接引用):
這是因為幾乎每個 c++ 應用程序都需要一個單獨的 c++ 標準庫來執行。所以他們必須將它移植到核心,並期望到處都有額外的成本。
c++ 是更複雜的語言,這意味著編譯器會從中創建更複雜的程式碼。正因為如此,在 c 中發現問題源於編譯器錯誤而不是程式碼錯誤更容易。
c語言也更加準系統,並且更容易遵循它的彙編表示,這通常很容易預測。
c++ 更通用,但 c 更適合低級或嵌入式的東西。
另一方面,“大多數 Linux 程序”具有很大的誤導性。看看圖形應用程序。Python 越來越受歡迎,尤其是在 Linux 上的 GUI 環境中。與 Windows 和 .NET 發生的事情大致相同。