成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

“C++繼任者”火到GitHub趨勢榜一,C++之父:規范不足,無法評價

開發 新聞
谷歌方開發者稱Carbon是C++的繼承者一事,有國外媒體詢問了C++之父Bjarne Stroustrup的看法。

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。

今年的CPP North C++大會上,谷歌宣布了一門新的編程語言Carbon,并稱其將是“C++的繼任者”

谷歌將其在GitHub上開源。雖然這個語言目前還處于實驗階段,但還是很快吸了引眾多程序員前來圍觀,還一度登上了GitHub趨勢榜第一,現已收獲標星21.3k。

圖片

對于谷歌方開發者稱Carbon是C++的繼承者一事,有國外媒體詢問了C++之父Bjarne Stroustrup的看法,老爺子表示:

這些年總是有新的語言試圖成為C++的繼承者,我歡迎對編程語言和編程風格進行實驗;

Carbon太新且規范不足,我無法真正做出有意義的技術評論。而通常在不開發全新語言規則、庫和管理方案的情況下,很難提供C++的替代方案。

所以谷歌團隊為什么非要搞一個C++“替代版”而不是繼續完善現有的C++?畢竟他們自己內部都在廣泛使用這個語言。

為什么不去升級C++?

對此,帶領團隊開發Carbon的谷歌工程師錢德勒·卡魯斯(Chandler Carruth)解釋稱,C++至今已有40歲了,其自身的很多問題困擾著現在的開發人員。

數十年來,C++已積累了許多技術負債。其維護者優先考慮向后兼容,以便繼續支持廣泛使用的項目,但這樣容易導致代碼量巨大。

而且C++雖然有開源的編譯器(如gcc),但也有不少閉源編譯器,其中的某些功能可能要過很久才能改善升級。

此外,C++語言的發展也受到了官僚委員會管理程序的阻礙,該程序以標準化而非設計為導向,這種做法導致很難給其添加新功能。

解決這些問題的最佳方法是避免直接繼承C或C++的“遺產”,而是從語言基礎開始,例如:現代泛型系統、模塊化代碼組織、一致的簡單語法等。

卡魯斯也在CPP大會上提到,該語言并不是為了和C++未來改進版本競爭,而是——

“探索用C++做不到的事”

正如微軟創建TypeScript來更新JavaScript那樣,Carbon作為一種在C++基礎上開發的新語言,將為更多開發者解決內存安全和泛型等問題,來彌補C++的不足。

圖片

目前Carbon語言的亮點包括:

  • Introducer關鍵字和簡單語法;
  • 函數輸入參數為只讀值;
  • 指針提供間接訪問和變體;
  • 使用表達式命名類型;
  • 通過包名導入APIs;
  • 強大且經過定義檢查的泛型
  • ......

此外,谷歌正在繼續開發Carbon以支持以下功能:

  • 性能關鍵型軟件;
  • 軟件和語言的演變;
  • 易于閱讀、理解和編寫的代碼;
  • 實用的安全和測試機制;
  • 快速且可擴展的開發;
  • 現代操作系統平臺、硬件架構和環境;
  • 與現有C++代碼的互操作性和遷移性。

開發團隊還將創建一個內置包管理器,這是C++中非常缺乏的。

舉個簡單的例子:用C++代碼和Carbon代碼分別計算半徑為1和2的兩個圓面積之和。二者對比如圖:

圖片

△圖源:GitHub;左為C++代碼,右為Carbon代碼

下圖展示了Carbon和C++互通性。程序員可以在Carbon上調用C++庫、方法和函數,而不需要額外的開銷,反之亦然。

圖片

不過至于安全問題,Carbon并沒有一開始就建立內存安全系統。

卡魯斯介紹說,由于C++內存安全性很差,所以Carbon的研發起點很低,該項目優先考慮的是遷移而不是安全;希望以后Carbon至少可以和Go或Swift一樣安全。

事實上,在Carbon之前,Mozilla(就是開發火狐那個)于2015年就發布了一個也標榜自己為“C++繼承者”的語言:Rust,而且這個Rust很注重內存安全性。

那為什么不大力發展Rust呢?

“Carbon是為有大量C++庫者準備的”

卡魯斯在CPP會議上對此回應稱,C++和Rust之間的銜接性不好,要將C++的生態系統轉移到Rust非常困難。

對于那些已經擁有大量C++代碼庫的開發者來說,要把自己之前的東西搬到Rust編輯器上就很麻煩了。

而Carbon被設計成一種C++的后繼語言,它以后將實現和C++無縫連接,并具備與C++的雙向互操作性,這對于有大量C++代碼庫者非常友好。

對于那些沒有這種“煩惱”的程序員們,卡魯斯表示,想用Rust的話就繼續用好了。

網友紛紛圍觀

前來圍觀Carbon的一眾網友中,有人表示支持谷歌開發這個新語言:

若能在這里直接調用C語言庫的低層級Stuff函數,而不需在開頭加行extern “C”,是很了不起的。

圖片

有人認同其簡化語言和提升安全性的目標,但他覺得要在現有的語言中改進內存安全并不太容易,現有的C++特征和API很可能會約束這個新語言的發展。

圖片

當然也有網友并不看好Carbon,認為谷歌有棄用創新軟件的習慣,這個聽起來很炸的項目可能會半途而廢。

還有人提出:Carbon這個用C++實現的語言居然想要替代C++?

有網友覺得,現在Rust正在逐步成為低級程序語言,Carbon和Rust有不少相似之處,僅憑“讓C++遷移更容易”并沒有什么賣點。

圖片

此外,Hacker News上還有網友想到了D語言(DLang),這個語言和C++的互通性很不錯。而且D語言也有Carbon的不少功能,包括和C++相互調用、減少額外的開銷等。

可惜由于D語言的初期定位不夠清晰,一度試圖涵蓋Java和C++的功能,導致它比較小眾。

圖片

傳送門:
https://github.com/carbon-language/carbon-lang

責任編輯:張燕妮 來源: 量子位
相關推薦

2022-07-20 15:20:40

谷歌開源

2022-07-24 21:36:23

C++編程語言開源

2022-08-07 16:04:15

CarbonC++

2023-10-31 17:57:52

C++編程語言

2011-07-13 17:08:02

CC++

2023-02-08 07:05:44

2018-02-25 11:12:17

Fuchsia安卓谷歌

2016-01-28 14:41:06

CC++編碼

2010-01-26 13:14:48

2011-05-18 17:56:38

C#C++

2010-03-26 09:48:43

Python嵌入C++

2020-05-29 14:56:56

C++GitHub編程

2009-12-22 01:54:50

C++之父Bjarne Stro

2011-07-13 16:48:55

CC++

2011-07-13 17:42:32

CC++

2010-01-21 16:08:26

C++語言

2011-07-20 16:16:03

CC++

2009-05-22 11:01:53

C++JavaC#

2011-07-14 17:45:06

CC++

2010-01-26 15:51:06

C++變量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www312aⅴ欧美在线看 | 不卡一区二区在线观看 | 精品自拍视频 | 日本久久精品视频 | 999国产精品视频免费 | 精品视频一区二区 | 亚洲精品女优 | 欧美不卡| 国产中文一区二区三区 | 欧美不卡一区二区 | 中文字幕国产第一页 | 国产亚洲一区二区三区在线观看 | 亚洲国产一区二区三区 | 中文字幕欧美日韩 | 黄色国产大片 | 国产午夜精品视频 | 久久久精品影院 | 精品日韩一区 | 九九综合 | 在线观看精品视频网站 | 国产精品污www一区二区三区 | 久久福利 | 精品日韩一区二区 | av中文字幕在线观看 | 亚洲一区视频 | 91视频在线 | 欧美一区二区三区在线观看视频 | 日韩欧美精品一区 | 日韩综合在线 | 免费成人高清在线视频 | 国产精品婷婷 | 中文二区 | 国产在线中文字幕 | 亚洲一区| 国产精品久久久久婷婷二区次 | 成人黄色电影在线播放 | 超碰天天 | 成人啊啊啊 | 黄色大片毛片 | 中文字幕日韩一区 | 成人久久久 |