技术干货码农の日常代码改变世界

对“为什么这些年c语言统治了几乎所有方面?”的回答

2014-12-20  本文已影响254人  TaXue_WWL

这个是知乎上的一个问题,比较感兴趣就做了一个回答,在这里重发一下,让更多的朋友参与讨论,先放链接

http://www.zhihu.com/question/26987428

下面是我的回答

题主,Lisp听说过吗?

在问为什么之前先想一下是不是。
问题描述是怎么回事?是我汉语没学好吗?看完以后感觉整个人都凌乱了......

那好,我们严肃点考虑一下你的问题。
稍等,我换电脑回答。


好的,我们继续。
题主认为很多高级语言的解释器或者编译器是用C实现的,这没有错。但你从这个就得出“C语言统治了几乎所有方面”是否过于武断?
你可以说他们的内在是C,但它们的出现就是因为C不能很好地解决实际的问题。
对了,最早的C编译器是汇编写的,那么接着你的逻辑,我们是否可以说就是汇编统治了几乎一切?然后汇编器是机器语言写的....机器语言中的0、1是电路的高低电平.....不用我继续说了吧?
(其实是物理统治了一切?(╯‵□′)╯︵┻━┻)

前面的回答提到了编译器的自举,也就是每一种图灵完备的语言都可以解释自己。于是你可以看到,为什么SICP中提到我们可以很快的使用LISP写一个解释器。这个和C没有关系。
很多语言比如java c# python golang matlab erlang 都是基于c的
的确是这样,对后面的三种不妄加评论。前面的解释器的确是C实现的,但是你能说在应用程式开发上C就比它们优越吗?每一种语言都有自己适合的领域,C之所以这么强大一个原因在于C的诞生就是为UNIX的开发而诞生的,如@曹毅所说

C语言的伟大就在于,他就是计算机本身!

但不代表C就统治了几乎所有方面。
题主你听说过有谁用C实现前端开发吗?

至于这句话

最近一些年c发展迅猛 各种操作系统都是基于其上

。。。。。。你确定不是开玩笑?“最近一些年”怎么理解?那么,题主,听说过SavaJe吗?一个纯java编写的操作系统,注意发表观点之前先去证实一下。

好的我们接着分析。

效率上谁也还是比不过c

......好吧,题主,内联汇编应该知道吧,这可以大大提升C程序的运行效率。
当然,脑洞够大的话,我可以说,直接用机器指令更快。于是有的小伙伴不开心了,还有逻辑门呢...开个玩笑(严肃脸)。
但是这么多年过去了 还是没有一种方法基于汇编 而比c 更好
不好意思啊,题主,没别的意思,我还是想举栗子,这个系统Menueos是纯汇编实现的http://www.menuetos.net/
它“可以存入一只1.44MB的软盘中。拥有实时,抢占式的宏内核。”(摘自wiki百科),小巧,而且功能也不差,在体积上就体现出它的优越性,就这么被题主一句话弄哭在厕所......
而且,如果题主感兴趣的话可以去查一下,基于汇编的实现不止这些。

-------------------------------------------结束分割-----------------------------------
最后说点题外话吧,没有黑题主的意思,我只是想说,有想法很好,说明思考过了,但是在发问之前最好要去证实一下,这样起码让回答者感受到你的热情。还有问题描述,真的有点混乱啊。
总之呢,希望可以帮到题主。
答主也是在校学生,有些观点不甚全面,欢迎大神们在讨论区讨论哦~

上一篇下一篇

猜你喜欢

热点阅读