為什麼mysql,nginx,libev,redis,linux都是用C寫的?

我是笑大的


原因是比較多的,不是同一個因素導致的。

1.歷史原因,比如LINUX開始寫的時候,其實沒有其它的可選項,只有C。

2.個人喜好,這些開源庫是有當時的主發起人的,這個發起人喜歡C,而不想用C++,那就一直是C了。

3.性能要求,你列的這幾個,都是在各自領域中對性能要求到極致的,採用C是一個很好的選擇。

4.語言本身的影響,比如C++,已經很複雜了,如果引入了,很可能會不同的人採用不同的寫法,本身並無高低之分,但這麼多寫法在一個開源項目中,維護就成了大問題。


唸經姐姐


可供使用的語言就是c c++ 彙編

彙編直接被排除掉。

linux起步時代,操作系統都是c寫的。90年代初。

linux雖說沒使用面嚮對象語言,但是面向對象思想在不停的應用,而且給出的面向對象實現性能更優秀。說明c和c++相比,同樣實現面向對象,c語言有可調優空間。甚至必要時候,直接使用匯編代碼。

其他軟件也類似,出於性能以及性能改善考慮。

軟件的擴展性和代碼組織條理性,大牛沒問題的。

只是23種設計模式不是運用的特別直接,思想還是有體現的,有些很巧妙,一切都為了性能讓步。


lndlgongjiang


使用C寫增加了可以移植性,並且能提升性能,對底層的控制更強。

喜歡就關注我吧。歡迎點贊。非常感謝。


分享到:


相關文章: