五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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)遵守國家法律
林口县| 镇江市| 溧水县| 竹山县| 德州市| 大冶市| 安徽省| 富阳市| 嘉定区| 德阳市| 龙泉市| 延寿县| 许昌县| 兴城市| 富阳市| 板桥市| 广元市| 漳州市| 乌苏市| 灵川县| 邯郸市| 平南县| 咸丰县| 奈曼旗| 岱山县| 邵阳县| 邢台县| 丰镇市| 普陀区| 政和县| 芜湖市| 铜鼓县| 建德市| 江山市| 惠安县| 进贤县| 杭锦旗| 延庆县| 亚东县| 都昌县| 棋牌|