不請自來,作為一名長期使用C語言進行開發的老司機,來回答一下這個問題。
首先,C語言還真是一門永不過時的語言答主本人從2000年開始接觸使用C語言,那還是486計算機還是天價的時代,上一次計算機課和過年一樣興奮。迄今已經近20年的時間,很多其它語言有的衰落了,有的起來了,有的是起起落落。
像pascal、basic、fortran等等,現在有的學生可能連聽說過都沒有,現在幾乎已經消失了,像C/C++/java/python/php/javascript等等都是經過大浪淘沙的勝利者,尤其是C語言,生命力是最頑強的。因為幾乎所有的計算機系統底層都是用C語言開發,尤其是linux/unix以及其衍生系統都是以C語言為主的操作系統,windows系統也是如此,只不過微軟花了大價錢開發了VC,但是還是以C語言為基礎的封裝的。
后來的嵌入式操作系統更是離不開C語言,所有嵌入式的BSP都是以C語言編程的,固件庫也是用C語言封裝的。包括已經一統手機天下的android操作系統,所有的driver層還必須是C語言開發,因為android的底層就是linux,android不過是在linux上開發優化了java虛擬機,然后用java語言開發了UI庫。其實嚴格來說android并不是新的操作系統,而是一個適用于手機的UI庫。
正如一個城市建筑群,所有建筑的地基都是用C語言打下的,你能把地基丟掉嗎,顯然是不行的,C語言青春永駐也是自然而然的事情。
其次、以后C語言會過期嗎答案是:不會,上面已經說了,C語言是可以直接和硬件驅動語言,是所有操作系統的基礎。除此之外,C語言的效率是除匯編語言之外效率最高的語言,即使目前計算機的算力已經非常廉價的今天,在某些要求苛刻的關鍵計算任務上,首先仍然是C語言,甚至有時使用C語言有時并不是完全因為效率,而是因為可控。高級語言由于封裝了操作系統的某些特性,比如線程安全、內存管理等等。這些高級特性再某些時候運行結果可能是未知的,比如有可能內存分配失敗,線程得不到及時調度等。對于實時性要求比較高的場景,這些不可預知的問題都是致命的。而C語言的簡單直接,就顯得格外重要了。
最后、C語言是永不過期的語言即使不斷誕生新的語言,有一部分任務采用其他語言完成,但是和底層硬件打交道仍然離不開C語言,如果你打算在driver層面或者從事嵌入式開發謀一份工作,那就毫不猶豫的擁抱C語言吧,如果你是高手,高薪工作那都不是事兒。
如果您有什么不同意見,歡迎留言討論。