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

Google終于開始革C++的命了!

開發 前端
看著Google以及其他國外大廠孜孜不倦地折騰新語言,新系統,不由得聯想到國內的大廠,能不能也學學人家,投入資源,做一點兒底層的東西,對IT界做點兒貢獻了?別老是在應用層琢磨商業模式了。

微軟通過TypeScript 革了JavaScript的命。

圖片

蘋果用Swift革了Objective-C的命。

圖片

JetBrains 用Kotlin 革了Java的命。

圖片

現在,Google終于要拿C++開刀了。

圖片

這個黑色圓圈中的C可不是C語言,而是叫做:

Carbon

為啥Google要搞一個Carbon呢?C++不是Google的五大語言之一嗎?

C++,Java,Python,JavaScript,Go

長期以來,C++是構建性能關鍵型應用程序員的主要語言,也積累了大量的項目和類庫。

但是C++本身非常復雜,數十年下來,這些項目和類庫慢慢變成了技術債務。

C++雖然也在努力發展,但是受到了官僚委員會流程的阻礙,這個流程以標準化而不是設計為導向,添加新功能很困難,一個特別委員會可能需要數年的瀑布流程才能做出重要決定。

可以想象,當Google的人面對著海量C++代碼的系統,想改進C++又很難的時候,那種無奈的心情。

既然如此,那就重啟爐灶,用碳(Carbon)去燃燒C++吧!

為什么不直接用Rust? 

可能很多人有這個疑問,Rust也面向系統級編程,并且被Mozilla設計成內存安全的語言,用來替代C語言。

圖片

Google認為,對于新項目來說,用Rust很合適,但是問題在于:

它不像 Java 和 Kotlin 那樣具有“雙向互操作性”,C++的生態遷移到Rust是很困難的。

而Carbon的目標是C++的后繼,是圍繞與C++的互操作性以及遷移現有C++代碼庫而設計的。 

不得不說,生態的威力再一次展現,當你想讓別人搬家的時候,最好能把他手頭的財產一并都搬走,否則每個人都會戀戀不舍。

Carbon的設計目標是這樣的:

  • 性能要和C++相媲美,要不然就沒有吸引力了
  • 和C++無縫的,雙向的互操作
  • 代碼應該容易編寫、閱讀
  • 有著實用的安全和測試機制
  • 要有一個溫和的學習曲線,別把人都嚇跑了
  • 支持現有的軟件設計和架構

開發團隊還將著手創建一個內置的包管理器,這幾乎是每個語言必備的工具了。

這樣,Carbon就可以像TypeScript和Kotlin那樣,基于現有C++的生態系統,吸引開發人員,保護現有投資。 

看下Carbon的代碼吧:

import Console;


// Prints the Fibonacci numbers less than `limit`.
fn Fibonacci(limit: i64) {
var (a: i64, b: i64) = (0, 1);
while (a < limit) {
Console.Print(a, " ");
let next: i64 = a + b;
a = b;
b = next;
}
Console.Print("\n");
}

用fn來定義函數,用var 來聲明變量,變量類型后置,有Go語言的影子。

用大括號定義函數體和代碼塊,用分號來分割語句,while 關鍵字, 有C語言的感覺。

Console.Print(...),有點C#的味道。

總之,雖然號稱是C++的后繼,但一點兒也不像C++。

語言特性

我瀏覽了一下,感興趣的特性有這些:

指針

指針號稱是C語言和C++的精華,可以直接操作內存,強大又靈活。

不過指針也是萬惡之源,把指針指向不該指向的地方,程序馬上崩潰。

Carbon中也有指針:T* p , 但是為了安全,并不支持指針的算術運算如 p++

Carbon中沒有空指針,要指向一個無效的對象,需要使用Optional(T*)

既然有指針,還要和C++互操作,那垃圾收集之類的技術肯定是沒法用了,自己小心地管理內存吧。

只提供一種方法來做事情

對于一件事情,Perl語言提供了很多方式來做,在非常靈活的同時也讓代碼維護者非常困擾。

C++也是這樣,例如可以用 "&&" 或者 "and"來表示邏輯運算,可以用struct 和class 來封裝數據。可以用0xaa和0xAA表示十六進制。

為了提高代碼的可讀性和可維護性,促進團隊協作,Carbon決定向Python學習:應該只有一種最好的,最明顯的方式來做事情。

安全

Carbon 對軟件的考量是這樣的:

內存安全:不允許越界訪問,取消null指針,取消未初始化的指針,禁止訪問已經釋放的地址

類型安全:不允許用不正確的類型來訪問有效的內存

數據競爭安全:防止多個線程在沒有“同步”的情況下對內存地址進行讀寫

其他的特性例如泛型、類.....我這里就不一一贅述了,感興趣的可以到GitHub上去看看:https://github.com/carbon-language/carbon-lang

開發方式

Carbon 是Google內部發起的,但是Carbon團隊認為為了未來取得成功,未來需要獨立的、開放的社區來主導。

不能像C++委員會那樣,雖然保證了國家和公司的代表性,但是限制太多,成本高昂,不出席會議就沒有發言權,只有現場人員的投票才能決定。

這和現在的主流開源方式大相徑庭,所以Carbon不走“ISO流程”,要擁抱開源,將來由軟件基金會和志愿者領導。

一點兒想法

看著Google以及其他國外大廠孜孜不倦地折騰新語言,新系統,不由得聯想到國內的大廠,能不能也學學人家,投入資源,做一點兒底層的東西,對IT界做點兒貢獻了?別老是在應用層琢磨商業模式了。

我相信,經過20多年的發展,國內絕對有人有能力做類似事情,就看有沒有環境去做了。

對了,順便說一句,我們公司在招聘Carbon程序員,年薪大概是12萬美元~16萬美元,歡迎投簡歷!

要求:有10年Carbon開發經驗。

圖片

責任編輯:武曉燕 來源: 碼農翻身
相關推薦

2023-10-17 20:21:25

百度AI原生思維

2019-03-04 08:48:23

Spring WebFJavaIO

2011-10-10 08:54:09

Siri蘋果語音識別

2013-01-18 09:25:48

微信移動應用YY

2015-10-16 09:35:23

支付寶更新微信

2023-09-26 07:22:20

2019-05-15 10:55:07

機器學習數據庫索引

2018-08-07 14:55:37

2016-07-25 14:31:04

辦公IT環境

2015-08-10 13:32:43

運維公有云自動化運維

2011-12-06 10:18:31

QQ通訊錄VOIP

2013-08-20 09:49:43

2015-08-19 10:29:50

無線通信藍牙

2023-07-25 12:21:27

AI相機

2017-08-14 15:47:32

人工智能Human Dx診斷

2015-07-27 18:23:13

google

2018-07-23 14:57:12

2017-12-12 11:18:03

微信語音聊天

2015-12-15 10:32:44

chromecss開發

2012-01-11 13:27:57

云計算CIO
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av看片网| 精品视频一区二区 | 国产999精品久久久久久 | 精品国偷自产在线 | 黄色大片在线免费观看 | 久热爱 | 国产美女精品视频 | 久久夜色精品国产 | 日韩一区二区三区在线观看 | 黄视频网址 | 亚洲精品成人 | 国产农村一级国产农村 | 美女黄18岁以下禁止观看 | 国产精品海角社区在线观看 | 成人免费在线视频 | 精品1区 | 国产97视频在线观看 | 免费看国产一级特黄aaaa大片 | 成人免费淫片aa视频免费 | 国产精品久久久久久久久久三级 | 黄网站色大毛片 | 久久国产欧美日韩精品 | 美女天堂| 亚洲天堂久久新 | 青青草社区 | 日韩欧美在线视频观看 | 亚洲大片 | 成人免费看电影 | 成人黄在线观看 | 福利视频二区 | 国产精品久久久久久久久久 | 成人妇女免费播放久久久 | 国产精品永久免费视频 | 99久久久久国产精品免费 | 国产永久免费 | 看羞羞视频 | 国产精品久久久久久久久久妞妞 | 国产精品久久久久久婷婷天堂 | 精品一区二区三区在线观看 | 亚洲97| 麻豆一区二区三区精品视频 |