不會的。生態(tài)無從建立。。。有五種以生態(tài)為核心的語言。。。C,C++,C#,JAVA,Python,你有沒有想過這五門語言為什么是主流?
成都創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計,網(wǎng)站模板,微信公眾號開發(fā),軟件開發(fā),小程序制作,10余年建站對戶外休閑椅等多個領(lǐng)域,擁有豐富的網(wǎng)站制作經(jīng)驗(yàn)。
是由于語法好嗎?如果這么認(rèn)為,那就太可笑了。是因?yàn)樗鼈儞碛凶约旱纳鷳B(tài)圈。
我舉三個例子。
C語言是單片機(jī)的標(biāo)準(zhǔn)開發(fā)語言,你家里用的電視,冰箱,洗衣機(jī),空調(diào),里面的主控芯片,全都是用C語言編寫的。由于偏底層,即便它空出位置來,Go也是勝任不了的,能替代它的只有匯編語言。
C#,你覺得它用的并不多?那就大錯特錯了,它的生態(tài)圈無比巨大,很多人只知道它是微軟的官方開發(fā)語言,Windows上的霸主。但卻常常被忽略的一點(diǎn)是,它還是唯一可以同時開發(fā)安卓和IOS的語言。有超過一半的3D手游都是用它寫的,比如《王者榮耀》。不僅如此,它還是云計算,人工智能,混合現(xiàn)實(shí)的重要組成部分,微軟未來還有一大波項目等著它。而且兩年前升級到了.NET CORE版本之后,它的速度比GO更快。
Python,很多人以為它是新興語言,但其實(shí)它從80年代就出現(xiàn)了。也是個老古董了。為什么這么多年都沒火,最近幾年卻突然火了?并不是因?yàn)樗旧?,而是因?yàn)長inux火了。Linux為什么火?因?yàn)榍度胧?,因?yàn)槲锫?lián)網(wǎng)。
GO是谷歌的親兒子沒錯,但谷歌為GO準(zhǔn)備了啥生態(tài)?在安卓上的重要性,咱都不好意思說跟JAVA比,太遙遠(yuǎn)。。。跟C#能比嗎?
在谷歌的平臺尚且如此,你還指望啥?
Go語言是谷歌推出的一種全新的編程語言,可以在不損失應(yīng)用程序性能的情況下降低代碼的復(fù)雜性。谷歌首席軟件工程師羅布派克(Rob Pike)說:我們之所以開發(fā)Go,是因?yàn)檫^去10多年間軟件開發(fā)的難度令人沮喪。
Go是谷歌2009發(fā)布的第二款編程語言。2009年7月份,谷歌曾發(fā)布了Simple語言,它是用來開發(fā)Android應(yīng)用的一種BASIC語言.
Go Logo
北京時間2010年1月10日,Go語言摘得了TIOBE公布的2009年年度大獎。該獎項授予在2009年市場份額增長最多的編程語言。
谷歌資深軟件工程師羅布·派克(Rob Pike)表示,"Go讓我體驗(yàn)到了從未有過的開發(fā)效率。"派克表示,和今天的C++或C一樣,Go是一種系統(tǒng)語言。他解釋道,"使用它可以進(jìn)行快速開發(fā),同時它還是一個真正的編譯語言,我們之所以現(xiàn)在將其開源,原因是我們認(rèn)為它已經(jīng)非常有用和強(qiáng)大。"
2007年,谷歌把Go作為一個20%項目開始研發(fā),即讓員工抽出本職工作之外時間的20%, 投入在該項目上。除了派克外,該項目的成員還有其他谷歌工程師也參與研發(fā)。
派克表示,編譯后Go代碼的運(yùn)行速度與C語言非常接近,而且編譯速度非??欤拖裨谑褂靡粋€交互式語言?,F(xiàn)有編程語言均未專門對多核處理器進(jìn)行優(yōu)化。Go就是谷歌工程師為這類程序編寫的一種語言。它不是針對編程初學(xué)者設(shè)計的,但學(xué)習(xí)使用它也不是非常困難。Go支持面向?qū)ο螅揖哂姓嬲拈]包(closures)和反射 (reflection)等功能。
在學(xué)習(xí)曲線方面,派克認(rèn)為Go與Java類似,對于Java開發(fā)者來說,應(yīng)該能夠輕松學(xué)會 Go。之所以將Go作為一個開源項目發(fā)布,目的是讓開源社區(qū)有機(jī)會創(chuàng)建更好的工具來使用該語言,例如 Eclipse IDE中的插件。
在谷歌公開發(fā)布的所有網(wǎng)絡(luò)應(yīng)用中,均沒有使用Go,但是谷歌已經(jīng)使用該語言開發(fā)了幾個內(nèi)部項目。派克表示,Go是否會對谷歌即將推出的Chrome OS產(chǎn)生影響,還言之尚早,不過Go的確可以和Native Client配合使用。他表示"Go可以讓應(yīng)用完美的運(yùn)行在瀏覽器內(nèi)。"例如,使用Go可以更高效的實(shí)現(xiàn)Wave,無論是在前端還是后臺。
Go 同時具有兩種編譯器,一種是建立在GCC基礎(chǔ)上的Gccgo,另外一種是分別針對64位x64和32位x86計算機(jī)的一套編譯器(6g和8g)。谷歌目前正在研發(fā)其對ARM芯片和Android設(shè)備的支持。派克表示,"Android手機(jī)存在的問題是,我們一直沒有一個數(shù)學(xué)協(xié)處理器。"
不能吧,現(xiàn)在用C語言搞開發(fā)都是用在更加底層的開發(fā)中,更加底層的開發(fā)需要高運(yùn)行效率,go語言的運(yùn)行效率是比不上C語言的,所以go語言在這些方面還無法取代C語言。應(yīng)該說是各有所長吧,go和C都有它們自己的適用環(huán)境,誰也不能取代誰。
因?yàn)閮?nèi)存管理粗糙。經(jīng)??吹絝mt.xxx導(dǎo)致內(nèi)存占用太多,反射導(dǎo)致內(nèi)存占用太多的抱怨。
go語言適合寫服務(wù)器組件,那種和業(yè)務(wù)數(shù)據(jù)無關(guān)的服務(wù)器。比如數(shù)據(jù)庫服務(wù)器、web服務(wù)器、日志搜索引擎等。如果用來寫一個crm管理系統(tǒng),非常累,因?yàn)槿狈枚喔呒壧匦院妄嫶蟮牡谌綆?,而且語法比較單一,總體感覺就跟寫命令行差不多。
Go語言是谷歌2009發(fā)布的編程語言,這個語言發(fā)明的目的,就是為了在運(yùn)行速度接近C/C++語言的基礎(chǔ)上(注意是接近),降低開發(fā)者的門檻,減少開發(fā)難度。
Go語言,在功能上沒有超過C/C++,適用者為沒有C/C++經(jīng)驗(yàn)的開發(fā)者,開發(fā)出接近C效率的程序。對于已經(jīng)熟練掌握C/C++的開發(fā)者來說,Go語言沒有優(yōu)勢,還要重學(xué)語法,適應(yīng)開發(fā)環(huán)境,明顯是不符合效率的。
總結(jié)
其實(shí)語言這東西,都有其優(yōu)勢和劣勢。而且有些東西并不是純技術(shù)的。比如java的優(yōu)勢在于清晰的語意表達(dá)。寫代碼的上限不高,但是下限也不低,適合工業(yè)開發(fā)。
而go呢,不得不說go在微服務(wù)這塊有先天優(yōu)勢。畢竟java中要實(shí)現(xiàn)go的很多功能,需要引入第三方庫。很笨重。而go原生支持,這個微服務(wù)就很輕巧。但是go的語法太活,工業(yè)用是一個挺大的弊端。