1. C語言是不是過時(shí)了?
在瀏覽各大門戶網(wǎng)、論壇時(shí),可能會發(fā)現(xiàn)網(wǎng)絡(luò)上頻繁討論的語言大多是Java,Python,Javascript等比較時(shí)髦的語言。
C語言作為一種1972年創(chuàng)立的語言,到今天已經(jīng)將近有半個(gè)世紀(jì)了。然而計(jì)算機(jī)又是一個(gè)日新月異的學(xué)科,肯定會讓大家有這樣的疑問——C語言是不是過時(shí)了呢?
如果C語言已經(jīng)過時(shí)了,與其花時(shí)間學(xué)一款已經(jīng)沒人用的冷門語言,為什么不去學(xué)習(xí)正當(dāng)勢頭上的熱門語言呢?
C語言真的過時(shí)了嗎?答案是否定的。
2. 從TIOBE指數(shù)看C語言。
為了確認(rèn)C語言是否真的過時(shí)了?是否已經(jīng)沒有人討論并使用它了?我們可以參考一下“TIOBE編程語言指數(shù)”。
??TIOBE指數(shù)是根據(jù)互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube統(tǒng)計(jì)出排名數(shù)據(jù),只是反映某個(gè)編程語言的熱門程度。重要的是要注意,TIOBE指數(shù)與最佳編程語言或編寫語言的代碼行數(shù)無關(guān)。
TIOBE雖然不能告訴我們什么是最佳語言(世界也不存在這么一種語言),也不能告訴我們世界上到底哪種語言的代碼行數(shù)最多。
但是TIOBE能告訴我們,在某個(gè)時(shí)間點(diǎn)上,哪種語言被廣泛地討論和使用了。
上圖為2002年到2020年各種編程語言的TIOBE指數(shù)。
從圖中我們可以看到,代表C語言的藍(lán)色線條在大多數(shù)時(shí)間段內(nèi)都占據(jù)了20%左右的份額,僅次于Java的黑色線條。并且有少許時(shí)間段反超了Java,登頂TIOBE指數(shù)榜首。
很顯然,C語言依然保持著非常優(yōu)勢的地位。
3. 為什么網(wǎng)上都不討論C語言?
既然C語言這么火,那網(wǎng)絡(luò)上處處都應(yīng)該在討論C語言。為什么網(wǎng)上看到的都是有關(guān)Java,Python,Javascript的討論呢?
目前,中國的互聯(lián)網(wǎng)發(fā)展處于世界的前列,而互聯(lián)網(wǎng)企業(yè)通常會需要大量的崗位來編寫網(wǎng)頁、移動端應(yīng)用、服務(wù)端程序,或者是做數(shù)據(jù)分析。供需關(guān)系導(dǎo)致了這些語言被頻繁討論。
網(wǎng)頁開發(fā)中所使用的腳本語言,如今默認(rèn)使用Javascript。
Java是安卓端開發(fā)所使用的主力語言,并且在服務(wù)端程序開發(fā)上也使用廣泛。
Python在自動化處理,數(shù)據(jù)分析上擁有很大優(yōu)勢。
我們當(dāng)然希望用更合適的選擇來做一件合適的事情,如果你關(guān)注的是怎樣又好又快地解決互聯(lián)網(wǎng)企業(yè)的需求,那么很容易得出:“Java,Python,Javascript正在風(fēng)口上,而C語言幾乎從不被人提起”這樣的結(jié)論。
當(dāng)然這并不意味著互聯(lián)網(wǎng)公司不需要C語言。遇到以性能為核心的需求時(shí),往往都是C語言大展身手的時(shí)候。當(dāng)你在刷短視頻時(shí),就離不開C語言的支持。
我們可以換個(gè)角度來看待C語言。假如,你是一名電子,圖像處理,音視頻處理,通訊等方向的工程師。需要盡量減少語言帶來的額外開銷,從而盡可能最大化獲取計(jì)算機(jī)的性能。你會發(fā)現(xiàn),除了C語言好像也只有匯編可供選擇了。
C語言的最大優(yōu)勢就在于:C語言具有通常是匯編語言才具有的微調(diào)控能力,可以根據(jù)具體情況微調(diào)程序以獲得最大運(yùn)行速度或最有效地使用內(nèi)存。
4. 從學(xué)習(xí)的角度看C語言。
常常聽到有人說,學(xué)習(xí)C語言有助于打好學(xué)習(xí)計(jì)算機(jī)知識的基礎(chǔ)。為什么會有這種說法呢?
發(fā)明C語言的目的,就是希望有一款語言可以代替匯編,來編寫UNIX操作系統(tǒng)代碼。因此,C語言的抽象層次是比較低的,擁有是匯編語言才具有的微調(diào)控能力。但是,C語言并不涉及到具體機(jī)器的工作細(xì)節(jié)。
C語言在一個(gè)高于匯編而又低于其他高級語言的抽象層次。在學(xué)習(xí)和使用時(shí),需要理解比其他高級語言更多的計(jì)算機(jī)工作的底層原理。而又不會像匯編一樣,陷入某類具體計(jì)算機(jī)工作細(xì)節(jié)的繁文末節(jié)當(dāng)中。
5. 從職業(yè)生涯的角度看C語言。
在職業(yè)生涯中,大部分人都會接觸到多種語言。例如:在安卓移動端開發(fā)時(shí),大部分的代碼使用Java來編寫,而性能關(guān)鍵的功能可能需要使用C語言來編寫。而如果你想為微處理器寫一個(gè)程序。由于微控制器的內(nèi)存和只讀存儲非常小,并且計(jì)算能力也很有限。用C語言往往是你的首要選擇。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.