自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Go語(yǔ)言的崛起?

開發(fā) 開發(fā)工具 前端
我們這個(gè)世界真的需要另外一種C語(yǔ)言風(fēng)格的編程語(yǔ)言嗎?很顯然,谷歌很早就這么認(rèn)為了,在2009年,它借用雷蒙斯樂隊(duì)的歌“Hey!Ho!Let’s Go”,正式推出了Go語(yǔ)言。

[[94824]]

我們這個(gè)世界真的需要另外一種C語(yǔ)言風(fēng)格的編程語(yǔ)言嗎?很顯然,谷歌很早就這么認(rèn)為了,在2009年,它借用雷蒙斯樂隊(duì)的歌“Hey!Ho!Let’s Go”,正式推出了Go語(yǔ)言。現(xiàn)在Go語(yǔ)言開發(fā)團(tuán)隊(duì)已經(jīng)開發(fā)出了這種語(yǔ)言的第一個(gè)穩(wěn)定版本,他們稱之為Go 1,他們將這種語(yǔ)言推向世界,希望人們用這種語(yǔ)言“開發(fā)出健壯的軟件產(chǎn)品和作品。”那么,現(xiàn)在人們對(duì)這種語(yǔ)言的使用情況又是如何呢?

讓我們先回顧一下,什么是Go語(yǔ)言,是什么促使谷歌決定推出這樣一種語(yǔ)言?按Go語(yǔ)言的“常見問題” 里的說法,自從那個(gè)“重要的系統(tǒng)級(jí)編程語(yǔ)言”誕生距今已超過十幾年了,這段時(shí)間計(jì)算機(jī)世界已經(jīng)發(fā)生了很大的變化。谷歌的才人們對(duì)目前現(xiàn)有的各種語(yǔ)言深感失望,他們必須要在“快速的編譯、快速的執(zhí)行或簡(jiǎn)單編程”之間做出選擇。“沒有一種主流的編程語(yǔ)言,例如C,C++,Java,Python等,能提供谷歌人想要的全部特征。

于是,谷歌的工程師從2007年起開始開發(fā)Go語(yǔ)言。“常見問題”里這樣說:Go語(yǔ)言在基本語(yǔ)法上”基本上屬于C語(yǔ)言家族“,但它從Pascal語(yǔ)系吸收了”大量的理念“,還有一些思想是來自其它的語(yǔ)言。但對(duì)于程序員來說,應(yīng)該把它當(dāng)成一種全新的語(yǔ)言,一種以”讓程序員更有效率,讓編程更有效率,至少是讓我們更有效率并且使編程更有樂趣“的理念為設(shè)計(jì)目標(biāo)的編程語(yǔ)言。

Go語(yǔ)言擅長(zhǎng)做什么…?

那么,Go語(yǔ)言擅長(zhǎng)做什么?根據(jù)谷歌著名的軟件工程師——Go語(yǔ)言的設(shè)計(jì)人之一——Rob Pike的說法,它是用來開發(fā)”大型軟件“的。

Pike說Go語(yǔ)言適合于”很多程序員一起開發(fā)的大型軟件,并且開發(fā)周期較長(zhǎng),支持云計(jì)算的網(wǎng)絡(luò)服務(wù):簡(jiǎn)言之,就是服務(wù)端軟件。Go語(yǔ)言能夠讓程序員快速開發(fā),并且在軟件不斷的增長(zhǎng)過程中,它能讓程序員更容易地進(jìn)行維護(hù)和修改。它融合了傳統(tǒng)編譯型語(yǔ)言的高效性和腳本語(yǔ)言的易用性和富于表達(dá)性。“(作為原貝爾實(shí)驗(yàn)室Unix開發(fā)小組成員,Pike對(duì)系統(tǒng)軟件有相當(dāng)?shù)恼J(rèn)識(shí)。)

但對(duì)于其它類型的軟件,Go語(yǔ)言也一樣的好用。例如,我在Google+上詢問了Go語(yǔ)言的使用者,得到了Douglas Fils的回復(fù),他正在拿各種語(yǔ)言做實(shí)驗(yàn)。

Fils說他現(xiàn)在有時(shí)會(huì)開發(fā)一些Web應(yīng)用程序,大多數(shù)都是在Java虛擬機(jī)(JVM)平臺(tái)上。“所以Java自然是最常用的。我最近開始嘗試更多的語(yǔ)言,例如Scala和Groovy。我用Groovy語(yǔ)言已經(jīng)開發(fā)了不少的東西,而且剛剛完成了一個(gè)Groovy/Grails語(yǔ)言上的大型項(xiàng)目。我還研究了一下Ruby on Rails/Python(Python框架),并用它們做了一些東西。”

他說他用早期版本的Go語(yǔ)言開發(fā)了一個(gè)Web界面來處理數(shù)據(jù)資源。但很不幸。“當(dāng)時(shí)的Go的程序庫(kù)和語(yǔ)法使得開發(fā)起來很困難。我還嘗試了node.js,而且,到了一月份,我的精力完全轉(zhuǎn)向了node.js.”

Node.js,F(xiàn)ils 說,很流行,“雖然我很喜歡它,但它的單線程事件循環(huán)機(jī)制和非阻塞的編程模式讓我不太滿意。還有,所有的東西都要用Javascript的回調(diào)函數(shù),我不喜歡這樣。”很顯然,他不是一個(gè)JavaScript的粉絲。Go語(yǔ)言的語(yǔ)法和結(jié)構(gòu),從另一方面講,“還是很簡(jiǎn)潔的。”

當(dāng)Go語(yǔ)言的語(yǔ)法和結(jié)構(gòu)趨于穩(wěn)定,并發(fā)布了Go 1時(shí),他覺得應(yīng)該轉(zhuǎn)回來,重寫他的Go語(yǔ)言程序。這回,他想起來了當(dāng)初為什么想用Go來開發(fā)。

關(guān)于Go語(yǔ)言的爭(zhēng)論

Fils說,在Java里,很多東西都需要有一定的模板套路,這是很討厭。他說Scala和groovy要好一些,但仍然是個(gè)問題。

Go語(yǔ)言給人的感覺像一個(gè)動(dòng)態(tài)的類型化語(yǔ)言,F(xiàn)ils說,但Go語(yǔ)言里靜態(tài)類型特征并不像Java里那樣明顯。

Go語(yǔ)言的垃圾收集管理,比JVM要好的多。跟Groovy這樣的動(dòng)態(tài)語(yǔ)言比起來尤其能看出這點(diǎn)。

Fils在評(píng)論中說Go語(yǔ)言的速度比其它語(yǔ)言快很多倍。它運(yùn)行速度快但不影響負(fù)載量。它編譯所需的時(shí)間很短,他在開發(fā)時(shí)能邊開發(fā)邊編譯,就像動(dòng)態(tài)語(yǔ)言那樣迅速。

最后,他說使用Go語(yǔ)言要比使用Node.js,Java或以Java為基礎(chǔ)的語(yǔ)言,Ruby on Rails等語(yǔ)言要有趣的多。在開發(fā)JVM平臺(tái)上的應(yīng)用時(shí),我總感覺自己是一個(gè)系統(tǒng)管理員,而不是一個(gè)開發(fā)者。我要修改堆空間,我要研究負(fù)載均衡或內(nèi)存問題或其它的資源管理問題。而使用Go語(yǔ)言,我不需要考慮這些。我開發(fā),編譯,測(cè)試,運(yùn)行,部署,非常的享受。

請(qǐng)注意,并不是所有的人都喜歡Go語(yǔ)言。你可以看一看Shaneal Manek的關(guān)于Go語(yǔ)言的垃圾收集系統(tǒng)以及腳本語(yǔ)言和編譯型語(yǔ)言之間比較的評(píng)論。

Go語(yǔ)言能走向主流嗎?

你的期望是什么?按照RedMonk’s Stephen O’Grady的說法,對(duì)于Go語(yǔ)言來說現(xiàn)在還非常年輕。通常,程序員會(huì)分成兩個(gè)陣營(yíng):要么歡迎底層語(yǔ)言和腳本型/垃圾收集器型語(yǔ)言的融合,要么是反對(duì)這樣做。對(duì)于后者,毫無意外的,他們是C語(yǔ)言的堅(jiān)定擁護(hù)者。

圍繞著Go語(yǔ)言有很多的爭(zhēng)論,這不令人吃驚,任何一種語(yǔ)言都是這樣。而令人吃驚的是目前Go語(yǔ)言在程序員中獲得了相當(dāng)?shù)奈Α’Grady二月份在RedMonk編程語(yǔ)言分級(jí)中把Go語(yǔ)言放入了第二梯隊(duì)。但是,他說,考慮一下Go語(yǔ)言是如此的年輕,“即使是目前這種成績(jī)也是讓人相當(dāng)?shù)挠∠笊羁塘恕?rdquo;

谷歌已經(jīng)發(fā)布了Go語(yǔ)言的穩(wěn)定版本,并且在Google App Engine支持部署這種語(yǔ)言的應(yīng)用,這將給Go語(yǔ)言帶來更多的吸引力。

Go語(yǔ)言能否成為一種“主流”語(yǔ)言,這需要由時(shí)間來判定。不過,看起來除谷歌之外還有很多公司對(duì)這種語(yǔ)言也很感興趣,比如Engine Yard等公司。那些對(duì)目前的現(xiàn)存的語(yǔ)言不太滿意的程序員大概對(duì)Go語(yǔ)言都在拭目以待。

如果你在使用Go語(yǔ)言或之前簡(jiǎn)單涉略過它,你需要注意,Go 1 版引入了不少的變化。然而從Go 1版開始,Go語(yǔ)言的變化將會(huì)遵循它的規(guī)格說明書進(jìn)行。根據(jù)Go語(yǔ)言的開發(fā)人員的透露,“也許在某個(gè)時(shí)間,我們會(huì)推出Go 2的規(guī)范,但在此之前,用Go語(yǔ)言編寫的程序在今后的Go 1版本(Go 1.1, Go 1.2等)上都能正確的運(yùn)行。”

你用Go語(yǔ)言開發(fā)過什么項(xiàng)目嗎?給我們說說你對(duì)Go語(yǔ)言的感覺,它是否是一個(gè)有未來的語(yǔ)言?

英文原文:

譯文鏈接:http://www.aqee.net/googles-go-programming-language-grows-up/

責(zé)任編輯:林師授 來源: 外刊IT評(píng)論
相關(guān)推薦

2013-07-30 09:27:32

Go云計(jì)算語(yǔ)言

2013-07-30 09:23:43

VMwareGoogle云平臺(tái)

2023-09-15 21:05:19

Go語(yǔ)言參數(shù)化

2024-05-06 07:00:00

編程語(yǔ)言開發(fā)

2018-03-12 22:13:46

GO語(yǔ)言編程軟件

2014-10-31 09:48:36

Go語(yǔ)言

2023-12-30 10:22:57

Go語(yǔ)言函數(shù)開發(fā)

2024-08-26 11:16:55

RustTypeScript語(yǔ)言

2021-07-30 07:28:15

WorkerPoolGo語(yǔ)言

2023-12-21 07:09:32

Go語(yǔ)言任務(wù)

2021-04-07 09:02:49

Go 語(yǔ)言變量與常量

2021-04-13 07:58:42

Go語(yǔ)言函數(shù)

2011-01-05 10:58:05

Google Go

2023-06-26 00:03:55

Go語(yǔ)言類型

2013-05-28 09:43:38

GoGo語(yǔ)言并發(fā)模式

2019-02-11 08:32:22

編程語(yǔ)言Go

2021-07-15 23:18:48

Go語(yǔ)言并發(fā)

2022-02-09 16:02:26

Go 語(yǔ)言ArraySlice

2024-04-07 11:33:02

Go逃逸分析

2023-03-13 00:10:46

Go語(yǔ)言版本
點(diǎn)贊
收藏

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