標籤:

golang 想要持久的火起來,該怎麼做?

1.語言設計上沒啥問題

2.業界應用 和社區方面 該如何推動?


最近想用Golang代替一部分原來的Python工作(計算、數據處理和Web開發相關),無奈Python下的庫、框架太多,golang短時間內很難有效替代。比如pandas/numpy這些庫,堪稱神器……真的丟不開。


個人覺得

語言是用來開發項目的,項目的使用者並不需要了解語言,因此項目的開發者才是直接使用語言的人,一個語言要火起來,至少要讓開發者喜歡。

開發者喜歡一門語言的角度大概是:

1.學習成本

這個很容易理解,大部分開發者更喜歡將精力集中在業務邏輯和產品本身,花太多時間精力在語言學習上是不划算的。

2.開發效率

顯而易見

3.性能

雖然執著在性能上是很沒必要的事情,對於一個項目來說,設計模式對性能的改善遠遠大於語言本身,但是一門性能好的語言會讓開發者心裡很舒坦

4.維護成本

開發者往往會花很多時間在這速食麵,與開發效率同理

5.是否可持續

不管學習成本多低,開發者們還是希望學習到的這門語言可以長期使用,而不是開發生涯的過客。

6.職業影響

很現實,學習這門語言後,適合的項目多不多,需要的公司多不多,工資高不高。

7.社區

有沒有良好的學習和交流環境。

例如 java 在這7點上都很平均,其中在職業影響和社區上特別突出,很多公司都需要java開發者,而且工資不錯。

PHP,則是學習成本和社區特別突出

python,學習成本、開發效率、社區都不錯

ObjectC,是職業影響很突出,Apple的產品的火爆給ObjectC營造了很好的前景(但這也要看Apple的產品的走勢)

最後說到Golang,1,2,3,4都很不錯,到那時5、6、7三項還不明確,社區在慢慢發展。

個人覺得相比其他語言來說,golang已經算髮展很快的了,只是還需要時間。


語言火不火跟語言本身沒有太大關係,主要看他有沒有一個好的應用場景

比如Objective-C沉寂一二十年沒人理,可iPhone手機流行後Objective-C立馬火了,原因就是iPhone應用能給開發者帶來實實在在的收益,而開發iPhone應用只能用Objective-C,所以Objective-C再爛也能火(這句話不是說Objective-C爛,而說說Objective-C必須火)

再如,大家都說Javascript語言是個3天堆造出來的爛語言,可它為什麼還這麼多人用呢??因為瀏覽器里只支持Javascript,你發明的xxscript再先進,你能勸說各個瀏覽器都支持你的xxscript嗎??所以Javascript再爛也能流行

再如,大家都說C#從語法上是近乎非常優美的語言,而且又有個世界最大軟體公司微軟全力支持,可C#為什麼沒有非常火呢???因為移動互聯網方面Windows Phone沒有火,web方面又有一大堆的PHP、JAVA、Python、Ruby競爭,所以儘管C#語法優美又有個有錢有勢的爹,可卻依然不溫不火,,

所以,Go要火,就要出一個殺手級應用場景,,,


有時候去推動這門語言,需要有個理由。因為是開源的,這是第一個使用層面的理由,但要想紅火必須要有社區去推,有頂級的包和庫,這個包庫必須的頂級和在某一領域佔有統治地位。另外有一點就是這個語言太好了,有時假刻意想要給它降降溫,因為不知這個語言會產生什麼樣的作用。就像當年的C語言一樣,要是沒有Unix也不行。VB沒有win office怎麼行,nodejs沒有V8怎麼行,python沒有了numpy怎麼行?


編程語言的不斷湧現和發展如同生命的進化,基因突變,適者生存。

一個新的物種能繁衍和擴展生存空間,因為某幾個新基因更好的適應了自然環境的變化。

一個新的編程語言火起來,因為某幾個特性更好的適應了產業環境的變化和程序員的需求。

GO顯然有幾個非常優秀的基因,自然能夠繁衍(越來越多人用)。數量夠多,自然會不斷發現和擴展生存空間(逐漸在一些領域出現殺手級應用(如docker)),促使進一步的繁衍。如此循環,一切都會自然發生,需要的只是時間。

想推動?那就自己加入到這個過程中。覺得適合,那就拿來做自己的項目(繁衍),也許到一定程度你發現自己用GO更好的解決了某類問題,那就把一些東西開源出來(擴展)。當然,給別的項目修個bug,補充點文檔,寫點博客心得等等,都是加入了這個過程。


模仿安卓,做個手機系統出來,就火啦。


最近golang挺熱門,可能是因為自己有點過度關注了。用知乎第一天就發現這個問題,作為一名好廚師我覺得我應該寫點什麼。一門編程語言要火自認為逃不過如下幾個方面。

1、語言特性

這是首要的,如果一個語言出來了啥用都沒有,那肯定是必死無疑。每個語言出來都必有其用途,存在即是價值,而且存在感越強,價值越高。golang這一點我覺得做的很好,面向於現在火的不行的雲計算,從語言層支持並發。有C++的效率有垃圾回收有腳本語言的靈活。

建議在語言上golang繼續發揚光大,把簡潔堅持下去,反正滿足需求即可,把功能做的更穩定,尤其是那個垃圾回收。順手了才會有人用這是最基本的。

2、生態環境

從來都不喜歡C#和objective c,之所以有那麼多人用無非是建立了一個良好的生態環境。.net有微軟大力支持,微軟花大價錢去推廣。oc有奇葩的蘋果用戶在支撐,封閉的開發環境(其實我很討厭oc的語法,噁心的中括弧,長長的方法名,這和golang的簡潔恰恰相反)。java免費有廣泛的社區與開源軟體,前期sun也是自己推了Ejb,有j2se,j2me,j2ee三個方向來試探市場,連php都能找到小型web這個切入口。golang目前是免費的,但是在生態環境維護方面google並沒有做太多的舉動,還處在成長期做事階段。而對比微軟與蘋果,目前已經成長到做市做勢階段了。

建議google儘快畫圈。早日確定golang的第一、二、三戰場。不要一句系統級腳本語言,天下通吃。什麼都能搞就是什麼都搞不了。針對具體的市場做出具體的措施。比如web方面需要有與前端結合的規範,企業軟體需要企業軟體商的支持,個人軟體需要更多詳細的教程和操作系統封裝包。

3、社區推動

golang是開源的當然離開不了社區的貢獻。還是那個道理,不能什麼都指望ugc,google自己需要帶頭做典型的解決方案,像apache一樣,什麼都有。社區大牛多。但還需要google大哥來領頭帶路不是?論壇發個帖子還需要水軍刷呢!

建議google將目前市場上各種功能的框架收編(不是收購),規範一下,做好文檔,這樣大家都在共同的基礎上為社區做貢獻,將力量用在傳播與翻譯,而不是用在做一些沒人用的,或者別人看不懂、用不好的東西上。MVC框架有個beego,是中國人維護的,看到這個框架有看到springMVC的感覺,很不錯。

4、解決方案

如同23條所述,golang目前的應用局面迫切需要類似lamp、ssh這樣的成套的,能夠解決實際問題的方案,而不是只有語言本身加一堆沒有文檔的開源項目。java初期有自己的EJB,微軟一直都有大平台,一個方案通吃。

5、類庫組件

要解決實際問題,就需要具體的功能模塊。在不同領域google需要帶頭做如下方向工作。

基礎:GUI、2D圖形處理、3D圖形處理、音頻處理、視頻處理;

系統:windows、macos、linux的系統介面封裝;

應用:報表、office、pdf支持、印表機、掃描儀、攝像、加速儀、陀螺儀、gps、web框架、工作流

6、工具配套

欲善其事先利其器,沒有好的工具,開發者就無法快速的投入開發,除非有特別大的驅動力,否則懶程序員都會放棄的。建議google在開源eclipse上做好插件。因為google的android就是在此平台的。用戶量大,用戶培養成本低。換ide對程序員來說是個頭疼的事情,因為快捷鍵都熟悉了。要求不多,代碼高亮+自動補全+格式化+debug+引用跟蹤就成。

7、人才培養

java有考試,微軟有考試,linux有考試,golang要是沒個證考都不好意思和人說話啊!同時golang需要加強與學校與培訓中心的合作,從起點培養golang人才。連unity3d、3dmax工具類軟體都有培訓,一個語言連個培訓都沒有就如同一個國家沒有初等教育。

8、雷鋒精神

golang是google的親兒子,自己的兒子還是要自己帶。雖說開源,如需要快速成長還是需要開點小灶。在工具、類庫、方案方面google需要不計回報的投入。需要拿自己開刀,拿自己的應用開刀,開始golang體系的應用。光youtube的後台是遠遠不夠的。

隨手碼字有點亂,或許在google的計劃中即是這麼乾的,只是時機未到,我們還未看到。我自己是非常期待android平台應用層從java換成golang。或許會有很大的性能提升呢,也就可以告別c++了。最近還在思考golang語言有啥子商業機會適合小團隊的。有想法的歡迎微博 @大朋哥的小宇宙 討論啊!

你說做個golang的工作流怎麼樣!


只要google肯下決心採用golang來寫android的應用,那golang不火也不行,android手機太多了。


最起碼應該出一個功能豐富的ide或者eclipse 和 idea的插件應該功能應該更多一點吧,

現在試了go的所有ide ,效率太低了


推薦閱讀:

如何看待Go進入tiobe top 20?
有哪些可以在500-1000行以內實現的Go語言項目?
有哪些不錯的golang開源項目?

TAG:Go語言 |