java實(shí)現(xiàn)nginx轉(zhuǎn)發(fā) 為什么mysql,nginx,libev,redis,linux都是用C寫的?
為什么mysql,nginx,libev,redis,linux都是用C寫的?原因很多,不盡相同。1. 歷史原因,例如,當(dāng)Linux開始編寫時(shí),沒有其他選項(xiàng),只有C.2。個(gè)人偏好:這些開源庫是由當(dāng)時(shí)的
為什么mysql,nginx,libev,redis,linux都是用C寫的?
原因很多,不盡相同。
1. 歷史原因,例如,當(dāng)Linux開始編寫時(shí),沒有其他選項(xiàng),只有C.
2。個(gè)人偏好:這些開源庫是由當(dāng)時(shí)的主要贊助商贊助的。贊助者喜歡C,但不想使用C,所以總是C
3。性能要求,你列出這些,都是在各自領(lǐng)域的性能要求到了極致,用C是個(gè)不錯(cuò)的選擇。
4. 語言本身的影響,例如C,已經(jīng)非常復(fù)雜了。如果引入,很可能不同的人會采用不同的寫作方法,高低沒有區(qū)別。然而,在一個(gè)開源項(xiàng)目中有這么多的編寫方法,維護(hù)就成了一個(gè)大問題。