這兩年Golang比較火旁赊,抽了幾天學(xué)習(xí)了一下允趟,發(fā)現(xiàn)了Go的一些特點(diǎn).
優(yōu)點(diǎn)
- 代碼簡(jiǎn)潔,可以不用加分號(hào)盛垦,很多地方不用括號(hào)棕诵,比如for循環(huán)
- 運(yùn)行效率高裁良,網(wǎng)上有很多benchmark,Go實(shí)現(xiàn)的web服務(wù)比Java校套,php等效率高了很多价脾。
缺點(diǎn)
- 不允許有警告笛匙,這點(diǎn)是讓很多程序員無(wú)法忍受的侨把;
- 不允許有多余的函數(shù)或者變量妹孙,我有的時(shí)候會(huì)寫(xiě)一些將來(lái)要使用但是現(xiàn)在是冗余的代碼放在那里,比如一個(gè)多余的函數(shù)或者變量涕蜂,但是Go是不允許的华匾,只能注釋掉;
- 不允許函數(shù)重載机隙,在一個(gè)package里面不能有同名函數(shù)出現(xiàn),這讓很多java程序員感覺(jué)不可思議有鹿;
- 每個(gè)package只能有一個(gè)main函數(shù),這也讓java程序員鄙視葱跋,寫(xiě)java的時(shí)候持寄,經(jīng)常順手在下面寫(xiě)一個(gè)main函數(shù)測(cè)試或者調(diào)試一下,在go里面就必須另外建立一個(gè)文件娱俺;
- IDE還不完善稍味,go雖然出現(xiàn)了10幾年荠卷,但是還沒(méi)有自己完善的IDE,不像java有jetbrains,eclipse,netbeans等等重量級(jí)的IDE油宜,goland是收費(fèi)版本怜姿,有些程序員使用破解版疼燥,我不太贊成,盡量還是出錢(qián)購(gòu)買(mǎi)醉者。免費(fèi)版本有VSCode和LiteIDE等,我用VS Code來(lái)寫(xiě)Go程序湃交,有些老鳥(niǎo)使用Vim藤巢,我一直不太習(xí)慣用Vim來(lái)寫(xiě)代碼。VS Code現(xiàn)在還屬于夠用的級(jí)別掂咒,達(dá)不到好用的級(jí)別。
- Go實(shí)現(xiàn)的框架主要集中在后臺(tái)温圆,比如Gin,Echo和Iris等等岁歉,前端的GoMobile還不成熟膝蜈,desktop端的go-astilectron也只是把Electron封裝了。
當(dāng)然饱搏,go還是在不斷完善的,并且是遵循BSD開(kāi)源協(xié)議备绽,不像java被Oracle收購(gòu)以后,逐步走向封閉鬓催,很多項(xiàng)目和平臺(tái)還是依賴(lài)于jdk1.8肺素,oracle也拿java專(zhuān)利打擊Google等競(jìng)爭(zhēng)對(duì)手,所以java的前途我是不太看好的压怠。