C 語言王者歸來,原因何在?
多年來,互聯網的興起使Java一直雄居程序排行榜首,這些月,c語言王者歸來,並呈穩坐寶座之勢。事實上,Java運行效率越來越好,各方面也不斷完善,為何卻有江河日下之勢?難道行業形勢正在發生巨變?或是Java使命已經完成,人們正在尋找能夠滿足新時代需求的語言,而該語言正在誕生或還沒有誕生,並且具有c語言的優點?...究竟什麼原因?
C和C++最近的比值又沒有什麼變化,那些該用C寫的還是用C寫,該用C++寫的還是用C++寫,只有其他語言才會互相鬥來斗去,所以本來就沒什麼所謂王者歸來。
樓主是指Tiobe的那份編程語言榜單嗎? 那份榜單是以搜索引擎的關鍵詞為基準的, 如果我沒記錯的話, 中國一共有五個搜索引擎入榜, 百度佔4%的權重, 其他四個搜索引擎各佔1%的權重(依稀記得裡面有個56.com, 什麼, 56也是搜索引擎?), 所以整個中國的狀況在其中佔了8%的權重. 近幾次的排名尤其能說明一個問題, 當大學生放假後, java迅速的衝到了榜單第一名, Object-C也處於上升不少, 當大學生開學後, C又重回寶座, C++也排名上升.
其實那份榜單基本上就是娛樂的, 真正比較有意義的榜單是基於github以及stackoverflow等網站的排名2013.06 編程語言排行榜 , 其中java第一, js第二, php第三
這個才比較合理, 每個網站都要用到的js在Tiobe里排名怎麼可能低, 肯定是大學生覺得javascript太難拼了……用大學生放假為理由來解釋 Java/C 的交替顯然有些過分了:
從這個圖可以看出,在 2002-2010 的整整八年期間,除了 2005 以外,Java 都是持續領先 C 的,並不存在所謂學生放假 Java 就上升,學生開學 C 就上升一說。實際上,我們可以看到,從 2008 年開始,C 的份額持續上升,Java 穩中有降,為什麼呢?
因為這是比例,比例是分子除以分母,Java 的下降其實不一定是因為 Java 的分子下降了,而也可以是因為分母增加了。
至於 2008 年開始 C 的份額持續上升很好理解:大家賣出了多少移動設備?每個移動設備裡面有多少 C 程序員的勞動大家知道么?每個手機的系統內核是C的,驅動程序是C的,底層操作全是C的,上層已經被主流的操作系統壟斷不需要廠商做什麼,設備廠商自己最需要做的就是 C 層面啊。
什麼?伺服器上都要用的 js 份額為什麼那麼低?js 是保存在伺服器上的,伺服器數量能跟移動設備的數量比?既然如此,js 的份額當然上不去了。幾年前老是寫java的時候,覺得java好牛。哲學好清晰,體系好完整,框架好強大,垃圾回收好高級後來總寫OC和C,覺得手動控制內存好爽,想啥時候釋放就啥時候釋放,想釋放誰就釋放誰。一點不帶含糊,這是城管正式工的趕腳啊
其實C/C++本不該分開,低可做OS做驅動,高可寫PhotoShop、AutoCAD、Facebook網站,40多年的發展幾乎是無所不能為的語言。
結果 排行榜 這玩意兒為了更具看點和娛樂性,硬是把它們分開了。不然的話,沒語言能撼動王者的地位,排行榜也就實在沒看頭了。。hoho有兄弟提到它們的差異,咱不從細節上談,
1. 實際用法中,在我看來,無非是IDE中編譯選項的區別。我是偷懶喜歡IDE,不太會用MakeFile的人。2. 實戰用途,現代的開源c項目,怎麼看怎麼像c++,OOP的思想無處不在。所以對於基礎語法95%一致,程序員的使用思想和實際用途也基本趨於一致的兩門高級語言,
拿c++這個兒子和c這個老子放在同個擂台上爭前三, 真不知道作為老二的java語言,是榮幸還是不幸?
發明這對父子的一個是實驗室(貝爾)為了寫unix,就發明了c,一個乾脆就是個黑客(縮寫是BS還是SB?),弄完了,基本就不管了。接下來就是標準化組織那極其可怕的效率,c99弄出來都快2000年,編譯器廠商不給力,ms愣是到了vs2005都不支持,貌似2008也是。
那咋辦,就乾脆搞了個c0x吧。而這點時間人家java在sun這個乾爹的照顧下,已經大發異彩。C#在微軟挖了delphi之父之後,也搞的風生水起。
百度了最新的排行榜,只能說java/c#這些傳統富二代還是牛的,當然現在Object-C這個暴發戶之子也是銳不可擋!但如果把c和c++的數據合一,依然遠遠領先於其他語言。其實單看java本身是個很差的語言,呆板腐朽,不願意吸收新鮮事物。奈何jvm很牛,開源力量巨大,大公司靠它掙錢,所以才有繁榮的現象,單看語言,java比較渣。
1.歷史原因 ,最早的跨平台,中級語言,編寫了UNIX,系統級語言的優勢;2.強大底層硬體操作能力,良好的性能優勢;3.在嵌入式領域,操作系統,和演算法庫,等方面有絕對的優勢.
你們有沒有發現所有的語言都有人罵,唯獨c語言罵的人不多。 被譽為魔鬼的指針人們對他都是又愛又恨。 而且c語言的設計上來說已經達到了一個最完美的標準了(無可刪減了)。而且這麼都年來,開源界,hack,geek們都一直沒有放棄過它。 甚至這麼多大牛雲集的linux領域都沒有人說過這個語言有缺點,要改進。 由此可以證明c語言的強大了。
ps:編程語言排行榜不靠譜。 僅供yy和娛樂。
=======================
如果你們想罵c語言,歡迎你們貼出罵它的理由。最好能證明你為什麼要罵它,它的不好在哪裡。寫了兩年的c了,難道我就是歸來的王者?!
在互聯網風起雲湧的十年里C也穩居於前列( 請參考@pansz兄提供的趨勢圖)。王者從未掛冠離去,又何談此際歸來?
層次不同而已,某個層次用的人多那麼相應那個層次的語言搜索自然多。目前這個時代是網路時代,java占第一自然水到渠成。如果將來的發展更快,到一個新層次,自然會有新語言占第一。
編程語言排行榜 TOP10~20 都是 &<類C語言&> 什麼王者歸來?? C語言一直是王者好么~~
原因就是有人在盡情吹盡情意淫
推薦閱讀:
※為什麼while (*s++ = *t++);這句代碼的作用是複製字元串?
※想系統學習 C 語言,目的是日後搞 PHP 開發,應該從 C++ 入手還是從 C# 入手?
※如何反駁「JVM、PVM是C寫的,語言不就是對C的封裝嗎!把C學精通了看我多厲害!」?
※為什麼C語言用int *a 來聲明指針變數,而不是int &a聲明?
※如何寫C++而不是C with Class?