C語言是不是世界上最好的編程語言?真的永遠(yuǎn)不會(huì)過時(shí)嗎?
網(wǎng)友解答: 不請(qǐng)自來,作為一名長期使用C語言進(jìn)行開發(fā)的老司機(jī),來回答一下這個(gè)問題。首先,C語言還真是一門永不過時(shí)的語言答主本人從2000年開始接觸使用C語言,那還是486計(jì)算機(jī)還是天價(jià)的
不請(qǐng)自來,作為一名長期使用C語言進(jìn)行開發(fā)的老司機(jī),來回答一下這個(gè)問題。
首先,C語言還真是一門永不過時(shí)的語言答主本人從2000年開始接觸使用C語言,那還是486計(jì)算機(jī)還是天價(jià)的時(shí)代,上一次計(jì)算機(jī)課和過年一樣興奮。迄今已經(jīng)近20年的時(shí)間,很多其它語言有的衰落了,有的起來了,有的是起起落落。
像pascal、basic、fortran等等,現(xiàn)在有的學(xué)生可能連聽說過都沒有,現(xiàn)在幾乎已經(jīng)消失了,像C/C++/java/python/php/javascript等等都是經(jīng)過大浪淘沙的勝利者,尤其是C語言,生命力是最頑強(qiáng)的。因?yàn)閹缀跛械挠?jì)算機(jī)系統(tǒng)底層都是用C語言開發(fā),尤其是linux/unix以及其衍生系統(tǒng)都是以C語言為主的操作系統(tǒng),windows系統(tǒng)也是如此,只不過微軟花了大價(jià)錢開發(fā)了VC,但是還是以C語言為基礎(chǔ)的封裝的。
后來的嵌入式操作系統(tǒng)更是離不開C語言,所有嵌入式的BSP都是以C語言編程的,固件庫也是用C語言封裝的。包括已經(jīng)一統(tǒng)手機(jī)天下的android操作系統(tǒng),所有的driver層還必須是C語言開發(fā),因?yàn)閍ndroid的底層就是linux,android不過是在linux上開發(fā)優(yōu)化了java虛擬機(jī),然后用java語言開發(fā)了UI庫。其實(shí)嚴(yán)格來說android并不是新的操作系統(tǒng),而是一個(gè)適用于手機(jī)的UI庫。
正如一個(gè)城市建筑群,所有建筑的地基都是用C語言打下的,你能把地基丟掉嗎,顯然是不行的,C語言青春永駐也是自然而然的事情。
其次、以后C語言會(huì)過期嗎答案是:不會(huì),上面已經(jīng)說了,C語言是可以直接和硬件驅(qū)動(dòng)語言,是所有操作系統(tǒng)的基礎(chǔ)。除此之外,C語言的效率是除匯編語言之外效率最高的語言,即使目前計(jì)算機(jī)的算力已經(jīng)非常廉價(jià)的今天,在某些要求苛刻的關(guān)鍵計(jì)算任務(wù)上,首先仍然是C語言,甚至有時(shí)使用C語言有時(shí)并不是完全因?yàn)樾?,而是因?yàn)榭煽亍8呒?jí)語言由于封裝了操作系統(tǒng)的某些特性,比如線程安全、內(nèi)存管理等等。這些高級(jí)特性再某些時(shí)候運(yùn)行結(jié)果可能是未知的,比如有可能內(nèi)存分配失敗,線程得不到及時(shí)調(diào)度等。對(duì)于實(shí)時(shí)性要求比較高的場景,這些不可預(yù)知的問題都是致命的。而C語言的簡單直接,就顯得格外重要了。
最后、C語言是永不過期的語言即使不斷誕生新的語言,有一部分任務(wù)采用其他語言完成,但是和底層硬件打交道仍然離不開C語言,如果你打算在driver層面或者從事嵌入式開發(fā)謀一份工作,那就毫不猶豫的擁抱C語言吧,如果你是高手,高薪工作那都不是事兒。
如果您有什么不同意見,歡迎留言討論。
網(wǎng)友解答:如果你是計(jì)算機(jī)專業(yè)的學(xué)生,幾乎各大高校入門的第一種語言就是C語言。當(dāng)然也會(huì)有以C++或者Java入門的。正經(jīng)的說,沒有一門語言可以被稱為最好的編程語言,之所以會(huì)有這么一說,多半都來自程序員間的囧談。IT行業(yè),你適合的,對(duì)你來說就是最好的。
其次,C語言會(huì)不會(huì)過時(shí),這個(gè)不會(huì)的。主要從兩個(gè)方面聊聊:
第一:為什么更多的搞笑采用C語言作為入門語言?并不是說C語言簡單(現(xiàn)在大部分程序員沒有多少敢說精通C語言的),而是C語言可以更快的帶你進(jìn)入編程世界,了解編程的常規(guī)思維方法。C語言是一門面向過程語言,相對(duì)面向?qū)ο蠖裕芏噙壿嬁梢钥吹酶逦?,不至于?duì)于初學(xué)者而言太過于抽象。從C語言學(xué)到的概念理論,也都可以很快的套用到其他編程語言。比如判斷、循環(huán)、函數(shù)、數(shù)據(jù)結(jié)構(gòu)等等。
第二:大家都知道C語言是一門底層語言,略高于匯編語言之上,低于Java/Python等高級(jí)語言。C語言的存在就是更方便的銜接硬件和軟件。比如電腦開機(jī),從按下電源按鈕到屏幕顯示開機(jī)Logo,這個(gè)階段運(yùn)行的絕大部分程序都是C語言(早些時(shí)候更多的是匯編)。換言之,C語言服務(wù)的行業(yè)更多的是制造業(yè),制造業(yè)雖然說不如互聯(lián)網(wǎng)那樣讓人眼花繚亂,但是也不可或缺。沒有制造業(yè),何談互聯(lián)網(wǎng)。
如果你想入門編程,還是先想好自己的方向。C語言多掌握一些,甚至你會(huì)覺得很多問題你都會(huì)有更深的理解。比如變量存儲(chǔ)、對(duì)象生存期等等。