C語言編程學(xué)習(xí):學(xué)C和C++不能不知道的硬知識(shí)劣欢。

4月份發(fā)布的全球編程語言排行榜棕诵,Java高居榜首,C屈居第二凿将,C++緊隨其后校套,C和C++的比例之和,超過Java5%牧抵,python借人工智能和DevOps的東風(fēng)笛匙,扶搖直上。新秀GO語言犀变,投胎技術(shù)好妹孙,有個(gè)好爹,依托容器技術(shù)和K8S获枝,迅速走紅蠢正。本文不是為C/C++站臺(tái),宣傳其為全宇宙最好的語言省店,而以近二十年的從業(yè)經(jīng)驗(yàn)來分析C/C++的優(yōu)劣勢(shì)嚣崭,提出指導(dǎo)性建議蜘拉。

這些是C/C++能做的

服務(wù)器開發(fā)工程師、人工智能有鹿、云計(jì)算工程師旭旭、信息安全(黑客反黑客)、大數(shù)據(jù) 葱跋、數(shù)據(jù)平臺(tái)持寄、嵌入式工程師、流媒體服務(wù)器娱俺、數(shù)據(jù)控解稍味、圖像處理、音頻視頻開發(fā)工程師荠卷、游戲服務(wù)器模庐、分布式系統(tǒng)、游戲輔助等

C語言以過程式編程油宜,比匯編更貼近人類思考方式掂碱,而迅速興起,在性能上貼近于機(jī)器語言慎冤。在開發(fā)效率和執(zhí)行性能上做了一個(gè)平衡疼燥。在系統(tǒng)控制上,給開發(fā)人員更多的自由蚁堤,這是他的優(yōu)點(diǎn)醉者,也是缺點(diǎn)。對(duì)于資深人員來說披诗,有很大的發(fā)揮空間撬即,但對(duì)于新手來說,就是踩不完的坑呈队,學(xué)習(xí)成本極高剥槐,稍不小心就是內(nèi)存泄漏,死鎖掂咒。因此才沧,C語言主要應(yīng)用場(chǎng)景在操作系統(tǒng),如Linux绍刮;底層組件,如ceph挨摸;這些標(biāo)準(zhǔn)化程度高孩革,性能要求苛刻的場(chǎng)景。

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【六三一得运,二七四膝蜈,八四五 】锅移,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)饱搏!裙有開發(fā)工具非剃,很多干貨和技術(shù)資料分享!

C++在C基礎(chǔ)上推沸,引入對(duì)象模型备绽,將數(shù)據(jù)和方法有機(jī)的綁定在一起,比C語言更一步貼近人類思維模式鬓催。引入模板編程肺素,替換C中宏這樣的語法糖。早期C編寫的程序中宇驾,內(nèi)聯(lián)函數(shù)和宏滿天飛倍靡,現(xiàn)在變成模板滿天飛,在執(zhí)行效率上不相上下课舍,但在調(diào)試期塌西,倒引入不少麻煩,實(shí)際上違反了接口和實(shí)現(xiàn)分離的原則筝尾。C++在開發(fā)效率上要高于C雨让,執(zhí)行效率上略遜于C,因此在開發(fā)周期要求比較嚴(yán)格忿等,性能要求高的場(chǎng)景栖忠,有他的發(fā)揮空間,比如游戲的端游贸街,比如行情軟件庵寞。在客戶端,有C#和C++競(jìng)爭(zhēng)薛匪,在服務(wù)端捐川,有JAVA、python逸尖、go與C++競(jìng)爭(zhēng)古沥,所以C++的市場(chǎng)份額就比較尷尬。

C/C++由于底層綁定比較緊娇跟,所以在跨平臺(tái)這塊存在很高的難度岩齿,特別是大規(guī)模的軟件系統(tǒng),要考慮的可能性更多苞俘。在boost逐漸發(fā)展壯大后盹沈,這些情況會(huì)逐漸好轉(zhuǎn)。boost為了跨平臺(tái)吃谣,不得不犧牲一些平臺(tái)特性乞封,在性能上也會(huì)有一定損失做裙,因此在一些應(yīng)用場(chǎng)景中,還會(huì)存在定制自己API庫(kù)的場(chǎng)景存在肃晚,相較于之前沒有boost時(shí)代锚贱,依然要好很多。

C/C++因?yàn)槠渥杂啥雀吖卮倩R放拧廊,即使是同一個(gè)功能,也能整出個(gè)N多花樣悍缠,開發(fā)人員需要在選擇困難癥中卦绣,痛并快樂著。這些狀況飞蚓,會(huì)隨著標(biāo)準(zhǔn)化程度不斷提高滤港,而減少,但永遠(yuǎn)不會(huì)消失趴拧。

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【六三一溅漾,二七四,八四五 】著榴,無論你是大牛還是小白添履,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙有開發(fā)工具脑又,很多干貨和技術(shù)資料分享暮胧!

這些是C/C++能做的

服務(wù)器開發(fā)工程師、人工智能问麸、云計(jì)算工程師往衷、信息安全(黑客反黑客)、大數(shù)據(jù) 严卖、數(shù)據(jù)平臺(tái)席舍、嵌入式工程師、流媒體服務(wù)器哮笆、數(shù)據(jù)控解来颤、圖像處理、音頻視頻開發(fā)工程師稠肘、游戲服務(wù)器福铅、分布式系統(tǒng)、游戲輔助等

Java在虛擬機(jī)以基礎(chǔ)启具,通過將字節(jié)碼轉(zhuǎn)譯成機(jī)器碼的方式本讥,實(shí)現(xiàn)跨平臺(tái),一次編譯到處運(yùn)行鲁冯。但我深深地懷疑拷沸,這個(gè)口號(hào)是否有價(jià)值。在服務(wù)端薯演,操作系統(tǒng)基本是可控的撞芍,一般不會(huì)出現(xiàn)千奇百怪的操作系統(tǒng),比如多數(shù)是Linux跨扮;而即使是Java虛擬機(jī)本身序无,不同JDK還不是完全兼容的;更何況衡创,Java的第三方依賴庫(kù)如此之多帝嗡,將一個(gè)服務(wù)遷移到另外一個(gè)服務(wù)器,可不是簡(jiǎn)單拷貝下JAR就可以了璃氢。所以哟玷,Java的流行,不是因?yàn)橐淮尉幾g到處運(yùn)行的 特性一也。

Java遵循嚴(yán)格的對(duì)象模型巢寡,單根繼承,所以在限制靈活性的同時(shí)椰苟,也降低了學(xué)習(xí)難度抑月。加上垃圾收集機(jī)制,取消了指針舆蝴,降低了出錯(cuò)概率谦絮。總體而言洁仗,在相同的代碼質(zhì)量和開發(fā)效率下层皱,對(duì)開發(fā)人員的要求也降低了,當(dāng)然京痢,成本也就降低了奶甘。Java在編程的人機(jī)交互接口,比C++更適合普羅大眾的水準(zhǔn)祭椰,擴(kuò)大參與人員的范圍臭家。基于Java的虛擬機(jī)方淤,還出現(xiàn)了Scala等其他類型語言钉赁,同樣在人機(jī)交互方面,努力讓編程活動(dòng)對(duì)人類更加友好携茂,提高開發(fā)效率你踩。

python是一種腳本語言,優(yōu)勢(shì)在于其他動(dòng)態(tài)特性,文本隨時(shí)改带膜,不用像編譯語言那樣吩谦,要經(jīng)歷一系列流程后,才能發(fā)布膝藕,即使是最簡(jiǎn)單的修改式廷。這個(gè)特性,對(duì)運(yùn)維特別有用芭挽,早期的Perl滑废、shell此類的腳本語言都是為運(yùn)維工具而存在,python繼承了腳本特性袜爪,同時(shí)還提供更強(qiáng)大的功能和豐富的軟件包蠕趁。Python不像C/C++那么靈活,連大括號(hào)放哪里辛馆,都能吵上一輩子俺陋。他限制嚴(yán)格的編程風(fēng)格,因?yàn)殪`活性對(duì)運(yùn)維沒有價(jià)值怀各,因此倔韭,隨著DevOps的興起,特別是云平臺(tái)瓢对,python找到自己的風(fēng)口寿酌。近期,AI的興起硕蛹,更給python注入更強(qiáng)效的興奮劑醇疼,扛把子吳恩達(dá)擺明車馬支持python,python火起來法焰,是不可阻擋的秧荆。

python在DevOps、云平臺(tái)埃仪、AI領(lǐng)域的興起乙濒,究其本質(zhì),是實(shí)用主義在發(fā)揮作用卵蛉。AI的核心價(jià)值是智能算法颁股,如何提高算法的智能水平才是關(guān)鍵,而且算法的調(diào)整頻度高傻丝,簡(jiǎn)單的交互接口才是算法科學(xué)家所喜歡的甘有。讓算法專家去鉆研如何提高性能,既沒有意義葡缰,也不符合經(jīng)濟(jì)價(jià)值亏掀。而DevOps和云平臺(tái)本質(zhì)上是基礎(chǔ)設(shè)施忱反、流程的管理,如何讓管理簡(jiǎn)單有效滤愕,才是核心價(jià)值温算,而且這些管理行為對(duì)性能并不苛刻。更不用說那些爭(zhēng)論不休的語法糖该互,編程風(fēng)格米者,沒有選擇韭畸,爭(zhēng)論也沒有價(jià)值宇智。

JavaScript由于歷史原因,是WEB終端的不二選擇胰丁,替換成本極高随橘,即使他有N多缺陷,即使谷歌和微軟如此強(qiáng)大锦庸,費(fèi)盡心思机蔗,也沒有顛覆成功。就像HTML5甘萧,已經(jīng)有國(guó)際標(biāo)準(zhǔn)組織萝嘁、眾多開發(fā)商、無數(shù)產(chǎn)品支持扬卷,這么多年過去了牙言,依然處于推廣階段。Node.js的出現(xiàn)怪得,實(shí)際只是為終端的開發(fā)人員擴(kuò)展了職業(yè)空間咱枉,為服務(wù)端開發(fā)增加了一個(gè)k選擇項(xiàng),有可能為企業(yè)節(jié)省成本徒恋,但真實(shí)價(jià)值如何蚕断,倒難以界定。服務(wù)端的開發(fā)選型本來就已經(jīng)很多入挣,Node.js能夠被傳統(tǒng)勢(shì)力接受程度亿乳,還有待考察。

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【六三一径筏,二七四葛假,八四五 】,無論你是大牛還是小白匠璧,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)桐款!裙有開發(fā)工具,很多干貨和技術(shù)資料分享夷恍!

GO語言有個(gè)好爹魔眨,隨著容器技術(shù)和K8S興起媳维,而迅速崛起。但以谷歌的尿性遏暴,開發(fā)出很多玩意兒侄刽,也拋棄了很多,最終會(huì)走向什么樣的命運(yùn)朋凉,其實(shí)難料州丹。就像Objective-C最終也一樣被蘋果拋棄。趁著火熱勁還在的時(shí)候杂彭,及時(shí)跟進(jìn)墓毒,倒不失一個(gè)好選擇。

像C語言這樣的亲怠,屹立歷史而不倒的語言所计,幾無同類。受企業(yè)控制的語言团秽,必然隨著企業(yè)戰(zhàn)略變化而走向衰斨麟省;為特定場(chǎng)景設(shè)計(jì)的語言习勤,也會(huì)隨著場(chǎng)景變化踪栋,而消失在歷史長(zhǎng)河。

以上分析對(duì)比這么多图毕,就是為了要清晰地認(rèn)識(shí)到C/C++優(yōu)劣在何處夷都,揚(yáng)長(zhǎng)避短才是生存不二法則。C/C++開發(fā)基礎(chǔ)組件吴旋,包括操作系統(tǒng)损肛,中間件,服務(wù)框架等荣瑟,核心原則為機(jī)制和策略分離治拿。以高性能、低延遲笆焰、資源占用率低等特性劫谅,為上層應(yīng)用提供更多可能性;多變部分轉(zhuǎn)化為策略嚷掠,留給其他語言發(fā)揮捏检。對(duì)于其他語言,比如Java實(shí)現(xiàn)的服務(wù)不皆,在該服務(wù)成熟穩(wěn)定之后贯城,完全可以用C/C++重寫,提供更高的性能和低延遲霹娄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末能犯,一起剝皮案震驚了整個(gè)濱河市鲫骗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌踩晶,老刑警劉巖执泰,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異渡蜻,居然都是意外死亡术吝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門茸苇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來排苍,“玉大人,你說我怎么就攤上這事税弃〖退辏” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵则果,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我漩氨,道長(zhǎng)西壮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任叫惊,我火速辦了婚禮款青,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霍狰。我一直安慰自己抡草,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布蔗坯。 她就那樣靜靜地躺著康震,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宾濒。 梳的紋絲不亂的頭發(fā)上腿短,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音绘梦,去河邊找鬼橘忱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛卸奉,可吹牛的內(nèi)容都是我干的钝诚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼榄棵,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼凝颇!你這毒婦竟也來了郎嫁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤祈噪,失蹤者是張志新(化名)和其女友劉穎泽铛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辑鲤,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盔腔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了月褥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弛随。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宁赤,靈堂內(nèi)的尸體忽然破棺而出舀透,到底是詐尸還是另有隱情,我是刑警寧澤决左,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布愕够,位于F島的核電站,受9級(jí)特大地震影響佛猛,放射性物質(zhì)發(fā)生泄漏惑芭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一继找、第九天 我趴在偏房一處隱蔽的房頂上張望遂跟。 院中可真熱鬧,春花似錦婴渡、人聲如沸幻锁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哄尔。三九已至,卻和暖如春硼瓣,著一層夾襖步出監(jiān)牢的瞬間究飞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工堂鲤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亿傅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓瘟栖,卻偏偏與公主長(zhǎng)得像葵擎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子半哟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,283評(píng)論 25 707
  • Code 組件相當(dāng)于把有預(yù)定交互的圖層打包酬滤,下次在用的時(shí)候直接調(diào)用這個(gè)組件签餐,就不用每次都從頭創(chuàng)建這個(gè)交互。組件可以...
    劉板栗閱讀 348評(píng)論 0 0
  • 都在關(guān)注歡樂頌2,也聊一聊曲狐貍曲筱筱体捏。 為了樊勝美的家事冠摄,曲假扮王柏川的女朋友,出頭把樊父從王柏川家抬走几缭,然后住...
    田園聽雨閱讀 150評(píng)論 0 2
  • 春花陌上河泳,若不去相看一眼,如何舍得年栓?不為別的拆挥,為我的心! 正是因著這心情的驅(qū)使某抓,拍了爸媽小區(qū)的櫻花纸兔,尋思再去哪里更...
    singing阿梅閱讀 232評(píng)論 0 1
  • 2011年食拜,茫然中的我不知何去何從,偶然的機(jī)會(huì)接觸到酸奶副编,布丁,乳酪等產(chǎn)品流强,并且沒有任何考慮的走了進(jìn)來痹届!
    雙皮奶大叔七年店閱讀 647評(píng)論 0 0