国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C++為什么始終無法取代 C 嗎?

2022-08-05 21:45 作者:DevWeekly  | 我要投稿

程序員寶藏庫https://github.com/Jackpopc/DevWeekly

Linux之父Linus Torvald對(duì)C++有過一段評(píng)價(jià):“C++ can’t solve the problem of the C language at all, it will only make things worse. This is a really bad language.”

C++根本不能解決C語言的問題,它只會(huì)讓事情變得更糟,它真是一種糟糕的語言。

目前有很多追求性能的軟件都是用C++編寫的,而且它的確在C的基礎(chǔ)上增加諸如抽象、通用編程和面向?qū)ο缶幊蹋拇_對(duì)C語言進(jìn)行了很多提升。

但是,這么多年過去Carbon都已經(jīng)出來要替代C++了,C++卻還沒有完全取代C。

我認(rèn)為,主要有幾方面原因:

  • C++是一種極其復(fù)雜的語言,完全理解這門語言需要投入很大的成本。相比之下,C語言要簡(jiǎn)單很多。我想,這也正是為什么很多大學(xué)大一時(shí)選擇C而不是C++作為入門編程語言的主要原因。

  • C語言提供了一個(gè)標(biāo)準(zhǔn)二進(jìn)制接口,這就使得各種各樣的其他語言都可以調(diào)用用C語言編寫的函數(shù)

  • C語言更加透明和明確,C++有很多隱性的東西會(huì)造成重大問題,特別是在對(duì)象的構(gòu)造和銷毀方面。C++有未定義的靜態(tài)變量初始化和去初始化的順序

支持C++的同學(xué)會(huì)認(rèn)為,它有更強(qiáng)大的抽象機(jī)制,這在構(gòu)建大型軟件時(shí)有幫助。當(dāng)時(shí),我覺得這不足以證明C++是一種好語言,如果想構(gòu)建大型軟件,有很多比C++更好的選擇。

目前很多公司使用C++的唯一原因是開發(fā)游戲引擎,這需要低級(jí)別的編程和高性能,同時(shí)又是相當(dāng)大的軟件。

然而,我們可以找到很多表現(xiàn)更好的替代品。

例如,Objective-C。

如果你想獲得低級(jí)別的編程,Objective-C是一個(gè)不錯(cuò)的選擇,它目前被用于蘋果的高性能3D圖形API,Metal。

與C++不同,Objective-C很容易與其他語言對(duì)接,因?yàn)槠鋵?duì)象模型是基于消息傳遞的。

這樣做的好處是,你可以使用Python或Lua這樣的更快、更容易的高階編程的語言,同時(shí)你可以用C語言來編寫需要高性能的部分。

根據(jù)我的經(jīng)驗(yàn),例如,Python和C的組合比單獨(dú)使用C++的開發(fā)成本要小很多。而且,分別學(xué)習(xí)和記憶Python和C都比單獨(dú)學(xué)習(xí)和記憶C++要快。

根據(jù)你的領(lǐng)域,如果你需要原生代碼,可以使用很多其他靜態(tài)類型的語言,如Rust、Swift、Go、Haskell或OCaml。

如果托管代碼也可以,那么C#、Java和Kotlin都是不錯(cuò)的選擇。


C++為什么始終無法取代 C 嗎?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
马公市| 吉木乃县| 湾仔区| 名山县| 哈尔滨市| 张家口市| 黑山县| 大足县| 庐江县| 宜宾市| 永兴县| 沈丘县| 扎赉特旗| 喀喇| 蓝田县| 隆林| 柳江县| 嵊州市| 盱眙县| 溆浦县| 古交市| 辽阳市| 兰州市| 肥西县| 宁化县| 将乐县| 南澳县| 高青县| 河北省| 荔浦县| 青铜峡市| 延津县| 闵行区| 舞阳县| 黄山市| 德格县| 定远县| 洪雅县| 芦山县| 高唐县| 治多县|