对“为什么这些年c语言统治了几乎所有方面?”的回答
这个是知乎上的一个问题,比较感兴趣就做了一个回答,在这里重发一下,让更多的朋友参与讨论,先放链接
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百科),小巧,而且功能也不差,在体积上就体现出它的优越性,就这么被题主一句话弄哭在厕所......
而且,如果题主感兴趣的话可以去查一下,基于汇编的实现不止这些。
-------------------------------------------结束分割-----------------------------------
最后说点题外话吧,没有黑题主的意思,我只是想说,有想法很好,说明思考过了,但是在发问之前最好要去证实一下,这样起码让回答者感受到你的热情。还有问题描述,真的有点混乱啊。
总之呢,希望可以帮到题主。
答主也是在校学生,有些观点不甚全面,欢迎大神们在讨论区讨论哦~