開(kāi)發(fā)漫談:Go語(yǔ)言究竟能否超越Java?
根據(jù)近年來(lái)TIOBE***語(yǔ)言排行榜,我們很容易會(huì)發(fā)現(xiàn)一個(gè)現(xiàn)象:Java語(yǔ)言長(zhǎng)盛不衰,多次連續(xù)獲得***語(yǔ)言排行榜***名,對(duì)于很多程序員而言,這似乎已經(jīng)成為一個(gè)習(xí)慣,Java也順理成章的成為很多編程人員學(xué)習(xí)的***。但是,如今看來(lái),這種定式或?qū)?huì)發(fā)生變化。
為什么這么說(shuō)呢?從2016年10月的***語(yǔ)言排行榜來(lái)看,盡管Java仍然位居***名,但是Go語(yǔ)言以1.67%的速度成為T(mén)OP20中增長(zhǎng)速度最快的語(yǔ)言,相比而言,Java和C語(yǔ)言則是分別下降了0.74%和6.35%。按照這個(gè)發(fā)展速度,Go語(yǔ)言登頂***語(yǔ)言指日可待。
那么是什么讓Go語(yǔ)言的受歡迎度不斷上升?Go語(yǔ)言的優(yōu)勢(shì)是什么?
1、背景??赡苡腥苏J(rèn)為,我用的是編程語(yǔ)言,完全不依靠于語(yǔ)言背后的背景。那筆者只能說(shuō)你太天真,一個(gè)語(yǔ)言的背景決定了他的發(fā)展方向和潛力,這就像一個(gè)人的家庭環(huán)境一定會(huì)對(duì)他的發(fā)展有影響。
Java是從1990年的雛形到1995年的正式發(fā)行已經(jīng)過(guò)去20多年,期間Java的東家從SUN公司辯稱甲骨文公司,后來(lái)還成為甲骨文與谷歌之間逐力的砝碼。
相較而言,Go語(yǔ)言的背景更為清晰可靠,它是Google開(kāi)發(fā)的,同時(shí)它也比Java年輕十四年(2009年發(fā)布)
2、簡(jiǎn)約。俗話說(shuō)“大道至簡(jiǎn)”,Go語(yǔ)言就是這樣一個(gè)極為簡(jiǎn)潔的編程語(yǔ)言。不同于Java,Go語(yǔ)言內(nèi)嵌了關(guān)聯(lián)數(shù)組(也稱為哈希表(hashes)或字典(dictionaries)),就像字符串類(lèi)型一樣。
GO語(yǔ)言最初的定位就是互聯(lián)網(wǎng)時(shí)代的C語(yǔ)言,所以,它的基礎(chǔ)哲學(xué)也來(lái)源于C語(yǔ)言,而C語(yǔ)言的成功正是因?yàn)樗暮?jiǎn)單。而簡(jiǎn)潔的表達(dá)方式也會(huì)提升程序員的開(kāi)發(fā)效率。
3、并發(fā)性好。幾年前,要實(shí)現(xiàn)并發(fā)編程并不是一件容易的事兒,要想完成并發(fā)編程要同時(shí)了解線程、鎖、Semaphore、CPU緩存方式等等,而多核處理器的普及,讓編程語(yǔ)言更為注重并發(fā)性,而Go語(yǔ)言,可以在一個(gè)進(jìn)程中執(zhí)行有數(shù)以十萬(wàn)計(jì)的協(xié)程,依舊保持高性能。
4、應(yīng)用場(chǎng)景符合未來(lái)需求。有人猜測(cè),今年10月GO語(yǔ)言增長(zhǎng)率如此之高的原因之一是:Docker的普及。如果真是如此,那么GO語(yǔ)言將持續(xù)如此高的增長(zhǎng)率。除此之外,GO語(yǔ)言適用于服務(wù)器編程、 分布式系統(tǒng)、網(wǎng)絡(luò)編程、內(nèi)存數(shù)據(jù)庫(kù)和云平臺(tái),而這些領(lǐng)域正是IT技術(shù)未來(lái)發(fā)展的重要方向。