如今,市面上編程語言幾百種,很多人覺得Python、 JAVA這種語言比較火,是不是C語言就不行了呢?
殊不知,C語言依然是現(xiàn)在的主力軍。
一、編程語言排行榜
給大家看一組數(shù)據(jù),2019年7月,最新 TIOBE 編程語言排行榜:
TIOBE開發(fā)語言排行榜每月更新一次,依據(jù)的指數(shù)是基于世界范圍內(nèi)的資深軟件工程師和第三方供應(yīng)商提供,其結(jié)果作為當(dāng)前業(yè)內(nèi)程序開發(fā)語言的流行使用程度的有效指標(biāo)。
雖然不知道具體是如何進(jìn)行排名的,但可信程度還是很高的。
再來看一組數(shù)據(jù),近十幾年 TOP 10 編程語言走勢(shì)圖:
這里說幾點(diǎn):
1.Python在近兩年隨著人工智能火了。
2.C語言這么多年位居榜單前列。
C語言這么多年沒有下沉,原因在于C語言屬于系統(tǒng)級(jí)語言,屬于底層編程語言。
可以用一句簡單的話來總結(jié):所有上層語言,都離不開底層硬件的支持,離不開C語言的支持。
JAVA的排名能超越C語言,很大程度在于JAVA的應(yīng)用很廣,web應(yīng)用、桌面應(yīng)用、安卓應(yīng)用等。。。
二、C歷史,及C標(biāo)準(zhǔn)
C語言發(fā)展的腳步,其實(shí)一直都沒有停止:從C89、 C90、 C99...... C17,C語言標(biāo)準(zhǔn)還在更新。
1.早期 C
1969:基于 BCPL 創(chuàng)建 B,以作為 Unix 的系統(tǒng)程序語言替代 PDP-7 匯編器。增加運(yùn)算符 ++ 、 -- 、復(fù)合賦值,保持為類 BCPL 的無類型語言。
1971:將 B 移植到 PDP-11 時(shí)創(chuàng)建 NB (新“ B ”)。類型( int 、 char 、數(shù)組與指針)、數(shù)組到指針轉(zhuǎn)換、到機(jī)器碼的編譯。
1972:語言更名為 C。結(jié)構(gòu)體、運(yùn)算符 && 及 || 、預(yù)處理器、可移植 I/O
1973:以 C 重寫。無符號(hào)整數(shù)、 long 、聯(lián)合體、枚舉、增強(qiáng)的類型安全。
1978:The C Programming Language,第1版
2.標(biāo)準(zhǔn) C
1983:ANSI 建立 X3J11 委員會(huì)
1988:The C Programming Language ,第2版
1989:C89 ,ANSI C 標(biāo)準(zhǔn)出版
1990:C90 ,ANSI C 標(biāo)準(zhǔn)被接納為 ISO/IEC 9899-1990
1995:C95 (ISO/IEC 9899 AM1)
極大擴(kuò)充了寬和多字節(jié)字符支持
雙標(biāo)符、iso646.h
1999:C99 (ISO/IEC 9899:1999)
A.新特性:_Bool 、 long long 、 stdint.h 、 inttypes.h 、 restrict 、復(fù)合字面量、變長度數(shù)組、伸縮數(shù)組成員、指代初始化器、 fenv.h 、變參數(shù)宏、復(fù)數(shù)、 __func__ 、十六進(jìn)制浮點(diǎn)格式( %a )、 lconv 的貨幣格式化、 isblank 、窄與寬字符串字面量的連接、枚舉的尾逗號(hào)、類函數(shù)宏的空參數(shù)、 STDC_* pragma 、 va_copy 、 tmpnam 的空返回、 setvbuf 中的空指針、 printf 的 hh 與 ll 長度指定符、 snprintf 、 _Exit 、 tgmath.h 、仿 POSIX strftime 指定符
B.來自 C++ :inline 、聲明與代碼混合、 for 循環(huán)的 init 子句中的聲明、 // 注釋、源代碼中的通用字符名
C.移除隱式函數(shù)聲明和隱式 int
2011:C11 (ISO/IEC 9899:2011)
A.具線程的內(nèi)存模型 、 stdatomic.h 、 threads.h 、泛型函數(shù)、 _Alignas/_Alignof 、 _Noreturn 、 _Static_assert 、可分析性擴(kuò)展、對(duì)復(fù)數(shù)和虛數(shù)類型的擴(kuò)展、匿名結(jié)構(gòu)體與聯(lián)合體、獨(dú)占文件打開模式、 quick_exit
B.移除 gets
C.來自邊界檢查接口 TR :邊界檢查接口
D.來自 Unicode TR :char16_t 、 char32_t ,及 uchar.h
·
·
·
2018:C17 (ISO/IEC 9899:2018)(C18非正式名稱)
修復(fù)C11許多缺陷,包含棄用 ATOMIC_VAR_INIT 和對(duì)下列缺陷報(bào)告的修正:
當(dāng)然,這只是其中的一部分,其實(shí)每一年都有動(dòng)作,只是我們沒有太關(guān)注而已。
以上信息來源:
https://zh.cppreference.com/w/c/language/history
三、更加完善的C語言
從上面的發(fā)展歷史,可以看得出來:我們常用的一些功能、API接口等都是一步一步發(fā)展而來,并非從一開始就有的。
自C11之后,C語言擴(kuò)展了許多新功能,特別是很多功能都趨向于C++。
如果你去了解C11標(biāo)準(zhǔn),你會(huì)發(fā)現(xiàn)C11定義了一些類似C++的標(biāo)準(zhǔn)API接口,使其更像是“現(xiàn)代”的語言。
感興趣的朋友可以下載C標(biāo)準(zhǔn)手冊(cè)來看看:
最后打一個(gè)總結(jié):C語言依然值得程序員學(xué)習(xí)。(C語言是世界上最好的語言)
推薦閱讀:
STM32復(fù)位來源、以及系統(tǒng)和內(nèi)核復(fù)位區(qū)別
STM32Cube將增添embOS和UNISON兩款RTOS
關(guān)注公眾號(hào)『strongerHuang』,在底部菜單中查看更多精彩內(nèi)容!
長按識(shí)別圖中二維碼關(guān)注
原文標(biāo)題:C語言依然位居榜單前列,依然值得程序員學(xué)習(xí)
文章出處:【微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
JAVA
+關(guān)注
關(guān)注
19文章
2973瀏覽量
104913 -
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137268 -
python
+關(guān)注
關(guān)注
56文章
4802瀏覽量
84885
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論