为什么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写增加了可以移植性,并且能提升性能,对底层的控制更强。

喜欢就关注我吧。欢迎点赞。非常感谢。


分享到:


相關文章: