日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
我認(rèn)為 Go 的成功歸功于這五個(gè)方面

大家好,我是煎魚。

在國外的播客節(jié)目 Go Time #100 中,Rob Pike 和 Robert Griesemer(Go 的兩位創(chuàng)始人)和主持人 Jerod Santo 討論了 Go 語言的成功緣由和一些思考。

如果你想創(chuàng)造一門成功的編程語言,向已經(jīng)做到的人學(xué)習(xí)是非常有價(jià)值的。

歡迎對(duì) Go 感興趣的小伙伴一起圍觀!

0. 說明

Rob Pike(下稱:Rob)將 Go 的成功歸為了 5 個(gè)方面,在主持人 @Jerod Santo 的分享下形成了這篇《[1]》文章,與播客的內(nèi)容相對(duì)應(yīng)。

目錄如下:

  • 他們寫了一份正式的規(guī)范。
  • 他們吸引了殺手級(jí)應(yīng)用。
  • 他們啟動(dòng)了一個(gè)開源社區(qū)。
  • 他們使語言難以改變。
  • 他們堅(jiān)持使用他們相信的功能。

1. 他們寫了一份正式的規(guī)范

在介紹 Go 項(xiàng)目的起源時(shí),Rob:

" 這就是規(guī)范發(fā)生的時(shí)候。是的,幾個(gè)星期。所以我們真的開始了六個(gè)月左右的頭腦風(fēng)暴和近似塑造。

我們做的第一件重要的事情——也許是我們做的第一件重要的事情 —— 是我們編寫了語言的正式規(guī)范,我認(rèn)為這是項(xiàng)目成功的關(guān)鍵部分。

其中最重要的事情之一是 Ian Taylor 也在 Google,看到了規(guī)范,并決定為它編寫一個(gè)編譯器。

有一天他走進(jìn)我們的辦公室說:“哦,順便說一句,我已經(jīng)為你的語言編寫了一個(gè)編譯器?!?那對(duì)我們來說是一個(gè)了不起的時(shí)刻。

理所當(dāng)然,他成為了 Go團(tuán)隊(duì)的一員,現(xiàn)在仍在研究 Go。"

主持人:“該規(guī)范最初引起了 Ian Lance Taylor 等工程師同事的興趣”。

2. 他們吸引了殺手級(jí)應(yīng)用

不幸的是,Rob 并沒有說明他們?cè)缙谑侨绾挝?Docker 的。我猜,通過使語言……對(duì)程序員有吸引力???????

Rob:“ 是的,Docker 是我們的殺手級(jí)應(yīng)用程序,因?yàn)樗怯?Go 編寫的,運(yùn)行良好,并且成為現(xiàn)在所謂的云計(jì)算的核心……我們過去只稱其為系統(tǒng)編程或服務(wù)器。

其中一項(xiàng)關(guān)鍵技術(shù)是用 Go 編寫的,這一事實(shí)證明了該語言對(duì)很多人的目的是正確的……而且我認(rèn)為它實(shí)際上是一種非常好的語言。

這正是我們?cè)趯⒄Z言放在一起時(shí)正在考慮的事情,盡管我們自己并沒有這樣做。Kubernetes 是另外出現(xiàn)的,其誕生來自谷歌。但是,擁有用你的語言編寫的重要軟件是用一種語言取得成功的一個(gè)非常重要的部分。

如果什么都沒有寫,那么語言有多好并不重要?!?/p>

3. 他們啟動(dòng)了一個(gè)開源社區(qū)

Rob 坦率地談到了他們?cè)陂_源世界中面臨的挑戰(zhàn),這令人耳目一新。

Rob:" 我確實(shí)認(rèn)為團(tuán)隊(duì)并沒有真正準(zhǔn)備好與開源社區(qū)互動(dòng)以及這意味著什么。Ian 是我們當(dāng)中唯一一個(gè)在開源世界中花費(fèi)大量時(shí)間的人,他所做的超出了他在社區(qū)工作中應(yīng)有的份額。

我們花了很長時(shí)間才理解成為開源社區(qū)的一部分意味著什么,擁有一個(gè)基本上由公司支付的項(xiàng)目,但有很多開源貢獻(xiàn)者......我們實(shí)際上有很多很棒的開源發(fā)展很早就發(fā)生了。Windows 的移植完全由外部貢獻(xiàn)者完成,這太棒了……社區(qū)的投入至關(guān)重要。

我認(rèn)為有時(shí)人們認(rèn)為谷歌控制它太多,這是他們的意見,但我不同意;我認(rèn)為他們低估了團(tuán)隊(duì)對(duì)開源社區(qū)所說的話、閱讀所有問題、處理得很好……有時(shí)不是很好,但最終它們都得到了修復(fù)。

當(dāng)有成千上萬的人使用你的編程語言時(shí),這是一件非常具有挑戰(zhàn)性的事情,而現(xiàn)在它被認(rèn)為是世界上數(shù)百萬的 Go 程序員。他們對(duì)這件事都有自己的看法,以及如何傾聽,但也要確保你保持項(xiàng)目的靈魂正確 —— 我認(rèn)為沒有任何簡單的答案。

我認(rèn)為很多人認(rèn)為這是微不足道的,你只是接受了每個(gè)人都想要的東西......但是你不會(huì)有 Go,你會(huì)擁有完全不同的東西。這真的很棘手,這是一個(gè)非常困難的平衡行為。"

4. 他們使語言難以改變

這個(gè)一開始有點(diǎn)違反直覺。通常對(duì)于軟件,延展性是一種美德,而僵化則是一種詛咒。然而,Rob 很好地解釋了為什么不這么做,對(duì)于像 Go 這樣的編程語言是多么的重要。

Rob:“好吧,我們很難改變。我們特意為 Go 1 寫下了我們承諾不會(huì)改變?nèi)魏螙|西。這對(duì)語言的成功至關(guān)重要,因?yàn)樗蛊髽I(yè)能夠相信我們正在做的、依賴我們的 Go,并不會(huì)破壞他們的東西……這使得做出改變變得更加困難。我認(rèn)為很多人不欣賞我們對(duì)這份合同的熱情相信。

我們沒有破壞人們的程序,盡管它現(xiàn)在是一個(gè)有十年歷史的項(xiàng)目。這只是一個(gè)令人難以置信的負(fù)擔(dān),但讓我們到達(dá)現(xiàn)在的位置至關(guān)重要 ”

煎魚:“這里指的是 Go1 兼容性保障,產(chǎn)生了很大的意義。

5. 他們堅(jiān)持使用他們相信的功能

當(dāng) Jon Calhoun 詢問社區(qū)反饋以及團(tuán)隊(duì)對(duì)變革的抵制如何與之抗衡時(shí)。

Rob:"Go 的某些功能對(duì)其成功很重要,但人們并不喜歡,我們對(duì)此非常直言不諱。

我認(rèn)為您提到的未使用變量的編譯錯(cuò)誤就是其中之一。這很煩人 —— 你忘記刪除一個(gè)未使用的變量,你的程序就會(huì)無法編譯。但對(duì)我們來說,這是我們?cè)噲D講述的故事的一部分,也就是:編寫一種盡可能保證更好代碼質(zhì)量的語言,即使我們無法阻止你編寫糟糕的代碼……但我們可以確保不會(huì)讓你的構(gòu)建速度變慢或代碼更難維護(hù)的事情發(fā)生。

我認(rèn)為真正讓人們發(fā)瘋的是:你不允許導(dǎo)入你不使用的庫。這對(duì)我們來說非常重要,因?yàn)槲覀兓撕芏鄷r(shí)間用大量二進(jìn)制文件進(jìn)行緩慢構(gòu)建,確保程序的依賴項(xiàng)正是您需要的,僅此而已;這對(duì)我們來說非常重要,但對(duì)很多人來說,每次你進(jìn)行編輯并刪除打印語句或其他東西時(shí),編譯器都會(huì)說“你沒有使用這個(gè)庫。我不會(huì)再繼續(xù)編譯你了?!?/p>

然后 Brad 寫了一個(gè)叫做 goimports 的東西,它是 gofmt 的一個(gè)變種,可以為你管理導(dǎo)入,這幾乎消除了這類抱怨。

通常情況下,自動(dòng)化可以解決很多抱怨。"


標(biāo)題名稱:我認(rèn)為 Go 的成功歸功于這五個(gè)方面
瀏覽地址:http://www.dlmjj.cn/article/coghisc.html