1、學(xué)習(xí)曲線
創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供臨西網(wǎng)站建設(shè)、臨西做網(wǎng)站、臨西網(wǎng)站設(shè)計(jì)、臨西網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、臨西企業(yè)網(wǎng)站模板建站服務(wù),十載臨西做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
它包含了類(lèi)C語(yǔ)法、GC內(nèi)置和工程工具。這一點(diǎn)非常重要,因?yàn)镚o語(yǔ)言容易學(xué)習(xí),所以一個(gè)普通的大學(xué)生花一個(gè)星期就能寫(xiě)出來(lái)可以上手的、高性能的應(yīng)用。在國(guó)內(nèi)大家都追求快,這也是為什么國(guó)內(nèi)Go流行的原因之一。
2、效率
Go擁有接近C的運(yùn)行效率和接近PHP的開(kāi)發(fā)效率,這就很有利的支撐了上面大家追求快速的需求。
3、出身名門(mén)、血統(tǒng)純正
之所以說(shuō)Go語(yǔ)言出身名門(mén),是因?yàn)槲覀冎繥o語(yǔ)言出自Google公司,這個(gè)公司在業(yè)界的知名度和實(shí)力自然不用多說(shuō)。Google公司聚集了一批牛人,在各種編程語(yǔ)言稱(chēng)雄爭(zhēng)霸的局面下推出新的編程語(yǔ)言,自然有它的戰(zhàn)略考慮。而且從Go語(yǔ)言的發(fā)展態(tài)勢(shì)來(lái)看,Google對(duì)它這個(gè)新的寵兒還是很看重的,Go自然有一個(gè)良好的發(fā)展前途。我們看看Go語(yǔ)言的主要?jiǎng)?chuàng)造者,血統(tǒng)純正這點(diǎn)就可見(jiàn)端倪了。
4、組合的思想、無(wú)侵入式的接口
Go語(yǔ)言可以說(shuō)是開(kāi)發(fā)效率和運(yùn)行效率二者的完美融合,天生的并發(fā)編程支持。Go語(yǔ)言支持當(dāng)前所有的編程范式,包括過(guò)程式編程、面向?qū)ο缶幊桃约昂瘮?shù)式編程。
5、強(qiáng)大的標(biāo)準(zhǔn)庫(kù)
這包括互聯(lián)網(wǎng)應(yīng)用、系統(tǒng)編程和網(wǎng)絡(luò)編程。Go里面的標(biāo)準(zhǔn)庫(kù)基本上已經(jīng)是非常穩(wěn)定,特別是我這里提到的三個(gè),網(wǎng)絡(luò)層、系統(tǒng)層的庫(kù)非常實(shí)用。
6、部署方便
我相信這一點(diǎn)是很多人選擇Go的最大理由,因?yàn)椴渴鹛奖?,所以現(xiàn)在也有很多人用Go開(kāi)發(fā)運(yùn)維程序。
7、簡(jiǎn)單的并發(fā)
它包含降低心智的并發(fā)和簡(jiǎn)易的數(shù)據(jù)同步,我覺(jué)得這是Go最大的特色。之所以寫(xiě)正確的并發(fā)、容錯(cuò)和可擴(kuò)展的程序如此之難,是因?yàn)槲覀冇昧隋e(cuò)誤的工具和錯(cuò)誤的抽象,Go可以說(shuō)這一塊做的相當(dāng)簡(jiǎn)單。
8、穩(wěn)定性
Go擁有強(qiáng)大的編譯檢查、嚴(yán)格的編碼規(guī)范和完整的軟件生命周期工具,具有很強(qiáng)的穩(wěn)定性,穩(wěn)定壓倒一切。那么為什么Go相比于其他程序會(huì)更穩(wěn)定呢?這是因?yàn)镚o提供了軟件生命周期的各個(gè)環(huán)節(jié)的工具,如go
tool、gofmt、go test。
易語(yǔ)言的價(jià)值在于預(yù)先封裝好了很多連手冊(cè)都不用看就知道怎么用的庫(kù)適合寫(xiě)各種小工具等, 其它各方面都沒(méi)法和主流語(yǔ)言比
c++顯然是速度最快的, go對(duì)比c++一是有自動(dòng)內(nèi)存回收, 二是作為近些年才推出的語(yǔ)言在語(yǔ)法上更簡(jiǎn)潔更現(xiàn)代化
Go語(yǔ)言自亮相以來(lái)并沒(méi)有展示一個(gè)明確的方向,Google員工將Go語(yǔ)言稱(chēng)為一個(gè)“試驗(yàn)性語(yǔ)言”,稱(chēng)其試圖融合Python等動(dòng)態(tài)語(yǔ)言的開(kāi)發(fā)速度和C或C++等編譯語(yǔ)言的性能和安全。一位Go語(yǔ)言的支持者概括而言Go語(yǔ)言如下:簡(jiǎn)單、快速、安全、并發(fā)、快樂(lè)編程、開(kāi)源;但Go語(yǔ)言缺乏方向以及其“集大成者”的嘗試很容易會(huì)導(dǎo)致其學(xué)貓不成學(xué)狗也不成,淪為四不像。盡管如此,編者仍然覺(jué)得Go語(yǔ)言有相當(dāng)大的潛力:很多開(kāi)發(fā)者對(duì)它感興趣——不僅它的最初設(shè)計(jì)者陣容強(qiáng)大,而且在參與修改源代碼的人群中也不乏大牛級(jí)人物。這很有可能幫助Go語(yǔ)言找到適合自己的方向,開(kāi)拓系統(tǒng)編程的新方向。
Go語(yǔ)言是谷歌推出的一種全新的編程語(yǔ)言,可以在不損失應(yīng)用程序性能的情況下降低代碼的復(fù)雜性。谷歌首席軟件工程師羅布派克(Rob Pike)說(shuō):我們之所以開(kāi)發(fā)Go,是因?yàn)檫^(guò)去10多年間軟件開(kāi)發(fā)的難度令人沮喪。
Go是谷歌2009發(fā)布的第二款編程語(yǔ)言。2009年7月份,谷歌曾發(fā)布了Simple語(yǔ)言,它是用來(lái)開(kāi)發(fā)Android應(yīng)用的一種BASIC語(yǔ)言.
Go Logo
北京時(shí)間2010年1月10日,Go語(yǔ)言摘得了TIOBE公布的2009年年度大獎(jiǎng)。該獎(jiǎng)項(xiàng)授予在2009年市場(chǎng)份額增長(zhǎng)最多的編程語(yǔ)言。
谷歌資深軟件工程師羅布·派克(Rob Pike)表示,"Go讓我體驗(yàn)到了從未有過(guò)的開(kāi)發(fā)效率。"派克表示,和今天的C++或C一樣,Go是一種系統(tǒng)語(yǔ)言。他解釋道,"使用它可以進(jìn)行快速開(kāi)發(fā),同時(shí)它還是一個(gè)真正的編譯語(yǔ)言,我們之所以現(xiàn)在將其開(kāi)源,原因是我們認(rèn)為它已經(jīng)非常有用和強(qiáng)大。"
2007年,谷歌把Go作為一個(gè)20%項(xiàng)目開(kāi)始研發(fā),即讓員工抽出本職工作之外時(shí)間的20%, 投入在該項(xiàng)目上。除了派克外,該項(xiàng)目的成員還有其他谷歌工程師也參與研發(fā)。
派克表示,編譯后Go代碼的運(yùn)行速度與C語(yǔ)言非常接近,而且編譯速度非常快,就像在使用一個(gè)交互式語(yǔ)言?,F(xiàn)有編程語(yǔ)言均未專(zhuān)門(mén)對(duì)多核處理器進(jìn)行優(yōu)化。Go就是谷歌工程師為這類(lèi)程序編寫(xiě)的一種語(yǔ)言。它不是針對(duì)編程初學(xué)者設(shè)計(jì)的,但學(xué)習(xí)使用它也不是非常困難。Go支持面向?qū)ο?,而且具有真正的閉包(closures)和反射 (reflection)等功能。
在學(xué)習(xí)曲線方面,派克認(rèn)為Go與Java類(lèi)似,對(duì)于Java開(kāi)發(fā)者來(lái)說(shuō),應(yīng)該能夠輕松學(xué)會(huì) Go。之所以將Go作為一個(gè)開(kāi)源項(xiàng)目發(fā)布,目的是讓開(kāi)源社區(qū)有機(jī)會(huì)創(chuàng)建更好的工具來(lái)使用該語(yǔ)言,例如 Eclipse IDE中的插件。
在谷歌公開(kāi)發(fā)布的所有網(wǎng)絡(luò)應(yīng)用中,均沒(méi)有使用Go,但是谷歌已經(jīng)使用該語(yǔ)言開(kāi)發(fā)了幾個(gè)內(nèi)部項(xiàng)目。派克表示,Go是否會(huì)對(duì)谷歌即將推出的Chrome OS產(chǎn)生影響,還言之尚早,不過(guò)Go的確可以和Native Client配合使用。他表示"Go可以讓?xiě)?yīng)用完美的運(yùn)行在瀏覽器內(nèi)。"例如,使用Go可以更高效的實(shí)現(xiàn)Wave,無(wú)論是在前端還是后臺(tái)。
Go 同時(shí)具有兩種編譯器,一種是建立在GCC基礎(chǔ)上的Gccgo,另外一種是分別針對(duì)64位x64和32位x86計(jì)算機(jī)的一套編譯器(6g和8g)。谷歌目前正在研發(fā)其對(duì)ARM芯片和Android設(shè)備的支持。派克表示,"Android手機(jī)存在的問(wèn)題是,我們一直沒(méi)有一個(gè)數(shù)學(xué)協(xié)處理器。"
項(xiàng)目推倒重構(gòu)是項(xiàng)目開(kāi)發(fā)大忌,一方面我們要盡量避免做項(xiàng)目推倒重構(gòu),盡量在前期就規(guī)劃好,另一方面,我們又希望項(xiàng)目能常做小重構(gòu),這對(duì)項(xiàng)目可持續(xù)性開(kāi)發(fā)是很有幫助的。而語(yǔ)言的重構(gòu),把Java項(xiàng)目用Go語(yǔ)言重寫(xiě)一遍,無(wú)疑是一次重大的推倒重來(lái)。
一、Go語(yǔ)言的優(yōu)勢(shì)在哪里
Go語(yǔ)言領(lǐng)先于Java的最大優(yōu)勢(shì),就在于快。Go語(yǔ)言會(huì)被編譯成機(jī)器代碼,直接執(zhí)行;Java語(yǔ)言則使用JVM運(yùn)行其代碼,這比Go語(yǔ)言要慢了很多。另外,Java語(yǔ)言的內(nèi)存管理,相比于Go語(yǔ)言,也復(fù)雜得多,而內(nèi)存管理,不管對(duì)于程序運(yùn)行,還是對(duì)程序員的開(kāi)發(fā),都極為重要。最后,Go語(yǔ)言沒(méi)有引用只有指針,這比Java語(yǔ)言處處引用,又領(lǐng)先了一個(gè)身位。
二、Go語(yǔ)言為什么更適合開(kāi)源
開(kāi)源,也就是開(kāi)放源代碼,最大的好處在于,可以利用全世界的程序員資源,來(lái)幫助你完善你的產(chǎn)品,開(kāi)發(fā)新需求,或者修復(fù)產(chǎn)品BUG。這對(duì)產(chǎn)品的可持續(xù)發(fā)展,是非常有幫助的,很多企業(yè)紛紛將自己的產(chǎn)品開(kāi)源,其實(shí)就是這個(gè)道理。而Go語(yǔ)言更易學(xué),更易避錯(cuò),更易閱讀等特點(diǎn),就決定了它更適合用來(lái)做開(kāi)源項(xiàng)目。
三、Java語(yǔ)言的優(yōu)勢(shì)
Java語(yǔ)言是目前軟件開(kāi)發(fā)中使用率最廣泛,也是最重要的程序之一,它的地位,絕對(duì)不是目前Go語(yǔ)言可以比擬的。Java在WEB應(yīng)用的開(kāi)發(fā)中,有著很重要的地位。但是,Java語(yǔ)言相對(duì)復(fù)雜的并發(fā)設(shè)計(jì),相當(dāng)龐大的項(xiàng)目體系,使其在開(kāi)發(fā)、測(cè)試階段都略為復(fù)雜,在某些方面已經(jīng)逐步落后于其他語(yǔ)言。