偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開發(fā) 前端
看著Google以及其他國(guó)外大廠孜孜不倦地折騰新語(yǔ)言,新系統(tǒng),不由得聯(lián)想到國(guó)內(nèi)的大廠,能不能也學(xué)學(xué)人家,投入資源,做一點(diǎn)兒底層的東西,對(duì)IT界做點(diǎn)兒貢獻(xiàn)了?別老是在應(yīng)用層琢磨商業(yè)模式了。

微軟通過(guò)TypeScript 革了JavaScript的命。

圖片

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

圖片

JetBrains 用Kotlin 革了Java的命。

圖片

現(xiàn)在,Google終于要拿C++開刀了。

圖片

這個(gè)黑色圓圈中的C可不是C語(yǔ)言,而是叫做:

Carbon

為啥Google要搞一個(gè)Carbon呢?C++不是Google的五大語(yǔ)言之一嗎?

C++,Java,Python,JavaScript,Go

長(zhǎng)期以來(lái),C++是構(gòu)建性能關(guān)鍵型應(yīng)用程序員的主要語(yǔ)言,也積累了大量的項(xiàng)目和類庫(kù)。

但是C++本身非常復(fù)雜,數(shù)十年下來(lái),這些項(xiàng)目和類庫(kù)慢慢變成了技術(shù)債務(wù)。

C++雖然也在努力發(fā)展,但是受到了官僚委員會(huì)流程的阻礙,這個(gè)流程以標(biāo)準(zhǔn)化而不是設(shè)計(jì)為導(dǎo)向,添加新功能很困難,一個(gè)特別委員會(huì)可能需要數(shù)年的瀑布流程才能做出重要決定。

可以想象,當(dāng)Google的人面對(duì)著海量C++代碼的系統(tǒng),想改進(jìn)C++又很難的時(shí)候,那種無(wú)奈的心情。

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

為什么不直接用Rust? 

可能很多人有這個(gè)疑問(wèn),Rust也面向系統(tǒng)級(jí)編程,并且被Mozilla設(shè)計(jì)成內(nèi)存安全的語(yǔ)言,用來(lái)替代C語(yǔ)言。

圖片

Google認(rèn)為,對(duì)于新項(xiàng)目來(lái)說(shuō),用Rust很合適,但是問(wèn)題在于:

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

而Carbon的目標(biāo)是C++的后繼,是圍繞與C++的互操作性以及遷移現(xiàn)有C++代碼庫(kù)而設(shè)計(jì)的。 

不得不說(shuō),生態(tài)的威力再一次展現(xiàn),當(dāng)你想讓別人搬家的時(shí)候,最好能把他手頭的財(cái)產(chǎn)一并都搬走,否則每個(gè)人都會(huì)戀戀不舍。

Carbon的設(shè)計(jì)目標(biāo)是這樣的:

  • 性能要和C++相媲美,要不然就沒有吸引力了
  • 和C++無(wú)縫的,雙向的互操作
  • 代碼應(yīng)該容易編寫、閱讀
  • 有著實(shí)用的安全和測(cè)試機(jī)制
  • 要有一個(gè)溫和的學(xué)習(xí)曲線,別把人都嚇跑了
  • 支持現(xiàn)有的軟件設(shè)計(jì)和架構(gòu)

開發(fā)團(tuán)隊(duì)還將著手創(chuàng)建一個(gè)內(nèi)置的包管理器,這幾乎是每個(gè)語(yǔ)言必備的工具了。

這樣,Carbon就可以像TypeScript和Kotlin那樣,基于現(xiàn)有C++的生態(tài)系統(tǒng),吸引開發(fā)人員,保護(hù)現(xiàn)有投資。 

看下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來(lái)定義函數(shù),用var 來(lái)聲明變量,變量類型后置,有Go語(yǔ)言的影子。

用大括號(hào)定義函數(shù)體和代碼塊,用分號(hào)來(lái)分割語(yǔ)句,while 關(guān)鍵字, 有C語(yǔ)言的感覺。

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

總之,雖然號(hào)稱是C++的后繼,但一點(diǎn)兒也不像C++。

語(yǔ)言特性

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

指針

指針號(hào)稱是C語(yǔ)言和C++的精華,可以直接操作內(nèi)存,強(qiáng)大又靈活。

不過(guò)指針也是萬(wàn)惡之源,把指針指向不該指向的地方,程序馬上崩潰。

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

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

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

只提供一種方法來(lái)做事情

對(duì)于一件事情,Perl語(yǔ)言提供了很多方式來(lái)做,在非常靈活的同時(shí)也讓代碼維護(hù)者非常困擾。

C++也是這樣,例如可以用 "&&" 或者 "and"來(lái)表示邏輯運(yùn)算,可以用struct 和class 來(lái)封裝數(shù)據(jù)??梢杂?xaa和0xAA表示十六進(jìn)制。

為了提高代碼的可讀性和可維護(hù)性,促進(jìn)團(tuán)隊(duì)協(xié)作,Carbon決定向Python學(xué)習(xí):應(yīng)該只有一種最好的,最明顯的方式來(lái)做事情。

安全

Carbon 對(duì)軟件的考量是這樣的:

內(nèi)存安全:不允許越界訪問(wèn),取消null指針,取消未初始化的指針,禁止訪問(wèn)已經(jīng)釋放的地址

類型安全:不允許用不正確的類型來(lái)訪問(wèn)有效的內(nèi)存

數(shù)據(jù)競(jìng)爭(zhēng)安全:防止多個(gè)線程在沒有“同步”的情況下對(duì)內(nèi)存地址進(jìn)行讀寫

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

開發(fā)方式

Carbon 是Google內(nèi)部發(fā)起的,但是Carbon團(tuán)隊(duì)認(rèn)為為了未來(lái)取得成功,未來(lái)需要獨(dú)立的、開放的社區(qū)來(lái)主導(dǎo)。

不能像C++委員會(huì)那樣,雖然保證了國(guó)家和公司的代表性,但是限制太多,成本高昂,不出席會(huì)議就沒有發(fā)言權(quán),只有現(xiàn)場(chǎng)人員的投票才能決定。

這和現(xiàn)在的主流開源方式大相徑庭,所以Carbon不走“ISO流程”,要擁抱開源,將來(lái)由軟件基金會(huì)和志愿者領(lǐng)導(dǎo)。

一點(diǎn)兒想法

看著Google以及其他國(guó)外大廠孜孜不倦地折騰新語(yǔ)言,新系統(tǒng),不由得聯(lián)想到國(guó)內(nèi)的大廠,能不能也學(xué)學(xué)人家,投入資源,做一點(diǎn)兒底層的東西,對(duì)IT界做點(diǎn)兒貢獻(xiàn)了?別老是在應(yīng)用層琢磨商業(yè)模式了。

我相信,經(jīng)過(guò)20多年的發(fā)展,國(guó)內(nèi)絕對(duì)有人有能力做類似事情,就看有沒有環(huán)境去做了。

對(duì)了,順便說(shuō)一句,我們公司在招聘Carbon程序員,年薪大概是12萬(wàn)美元~16萬(wàn)美元,歡迎投簡(jiǎn)歷!

要求:有10年Carbon開發(fā)經(jīng)驗(yàn)。

圖片

責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)翻身
相關(guān)推薦

2023-10-17 20:21:25

百度AI原生思維

2019-03-04 08:48:23

Spring WebFJavaIO

2011-10-10 08:54:09

Siri蘋果語(yǔ)音識(shí)別

2013-01-18 09:25:48

微信移動(dòng)應(yīng)用YY

2015-10-16 09:35:23

支付寶更新微信

2023-09-26 07:22:20

2019-05-15 10:55:07

機(jī)器學(xué)習(xí)數(shù)據(jù)庫(kù)索引

2018-08-07 14:55:37

2016-07-25 14:31:04

辦公I(xiàn)T環(huán)境

2015-08-10 13:32:43

運(yùn)維公有云自動(dòng)化運(yùn)維

2011-12-06 10:18:31

QQ通訊錄VOIP

2013-08-20 09:49:43

2015-08-19 10:29:50

無(wú)線通信藍(lán)牙

2023-07-25 12:21:27

AI相機(jī)

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

微信語(yǔ)音聊天

2015-12-15 10:32:44

chromecss開發(fā)

2012-01-11 13:27:57

云計(jì)算CIO
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)