為什麼開源軟體絕大部分都是C語言寫的,而商業軟體大多數是C++開發的?


以前Linus噴過C++一次。其中一部分意思是C++的style太多,而且library/framework也太多,不同水平的程序員寫的相互看不懂。而C則單純許多。

找不到這麼多高水平C++的情況下,為了開源社區的高質量,索性不允許C++。而C++的開發效率確實比C高,公司內部合作也簡單許多,就那麼幾個人,統一一下也方便。


其實也不是這樣,死啃著C的似乎主要是GNU一系。像KDE、Qt那一系都是C++派的。我接觸的生物學軟體也都是C++更多。

GNU之所以選C,我猜測主要是因為當初C++並不完善(C++的標準03年才搞好,而C語言89年就很和諧了)。而且C++現在也有很多根本性、設計理念上的問題。

GNU最大的問題是:沒有足夠迅速地推出一個中間語言,以掩蓋直接用C開發的複雜性。


因為從c++的本質講就是解決閉源軟體開發的時候,責任界定的問題。

其他的那些特性都是因為閉源以後,想吹得多高大上都行,附加上去的語法糖。


GitHub上最火的開源項目及編程語言:JavaScript奪冠


推薦閱讀:

成為一個優秀的程序員,一定要精通C/C++嗎?
如今存在用機器語言編寫出的程序么?
你工作中最推薦的 C/C++ 程序庫有哪些,為什麼?
ACM 怎麼樣零基礎到入門?
現在 C 語言可以設計 FPGA 么?

TAG:開源軟體 | 商業 | C編程語言 | C | 商業軟體 |