最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
安岳县| 玉林市| 绥宁县| 荣成市| 桦川县| 定南县| 屯门区| 宜黄县| 敦煌市| 桃园县| 涞源县| 盘锦市| 敦化市| 页游| 栖霞市| 石狮市| 闵行区| 济源市| 屏东市| 承德市| 精河县| 河西区| 罗平县| 平远县| 普兰县| 贺兰县| 来安县| 九台市| 石狮市| 惠来县| 龙州县| 海晏县| 泗阳县| 北宁市| 蓝山县| 彩票| 巢湖市| 济宁市| 化州市| 巴塘县| 台中县|