什么人適合學(xué)go語(yǔ)言?
當(dāng)我得知Go語(yǔ)言是一門(mén)通用的編程語(yǔ)言的時(shí)候,我第一去看的部分,就是當(dāng)年C++留給我的疑問(wèn),雖然此時(shí)我已經(jīng)轉(zhuǎn)型Java和Python程序員。我不是去看Go語(yǔ)言有沒(méi)有解決這個(gè)問(wèn)題,而是去看,他是如何解決的。
當(dāng)然,Go語(yǔ)言對(duì)業(yè)界帶來(lái)最大的影響,就是它的并發(fā)編程模型。高性能的異步io,包括select, epoll, 完成端口,回調(diào)等等,一直是廣大軟件工程師望而卻步的領(lǐng)域。其中的一部分為了能做出更高性能的服務(wù)而被迫迎難而上。但如今,使用Go語(yǔ)言,這樣的編程任務(wù)并不比單任務(wù)的程序片段復(fù)雜太多。我也迫不及待的編寫(xiě)了一個(gè)并發(fā)爬蟲(chóng),它運(yùn)行的那一刻,產(chǎn)生的吞吐量把我嚇到了。為了不被遠(yuǎn)端ban掉,我立即殺掉我的爬蟲(chóng),加上了限流。而這一切,沒(méi)有用到任何鎖,沒(méi)有任何共享存儲(chǔ)。
如今的Go語(yǔ)言人才,早已是各大公司爭(zhēng)奪的對(duì)象,簡(jiǎn)單的搜索就能找到諸如的Go語(yǔ)言專(zhuān)屬職位,而Go語(yǔ)言編寫(xiě)的項(xiàng)目,如等早已“家喻戶(hù)曉”。Go語(yǔ)言也在諸如領(lǐng)域應(yīng)用廣泛。
我在想,Go語(yǔ)言為何會(huì)在這些領(lǐng)域獲得巨大的成功呢?我的答案可能和大家期望的不太一樣,因?yàn)樵谶@里,我從另一個(gè)角度去看。那就是,這些領(lǐng)域都是的領(lǐng)域。在新的領(lǐng)域開(kāi)發(fā)新的項(xiàng)目,人們自然會(huì)去選擇最合適的語(yǔ)言,而不受歷史遺留代碼,公司決策流程的牽絆。Go能在這些領(lǐng)域取得更大的成功真是歸結(jié)于它是一門(mén)語(yǔ)言。
2019年,我們要思考的,已經(jīng)不是應(yīng)不應(yīng)該學(xué)習(xí)Go語(yǔ)言,也不是思考Go語(yǔ)言能夠做什么。而是,如何騰出時(shí)間和精力,去學(xué)習(xí)Go語(yǔ)言。