標籤:

Go與Python ?

之前一直在用python,寫的很順手。最近才了解到go語言。網上各種說go語言如何如何快。也看到很多人說從python逐漸轉向go了。於是去看了go的語法,發現多少還是有些不適應,不過這個可能是go代碼寫的還不多的原因。還有另一個問題,python有那麼多好用的第三方庫,所以想問從python轉向go的各位,轉向go之後,一切都還好么?寫起來還像python一樣順手么?還有就是如果現在把go作為平時的輔助腳本工具,可以完全替代掉python么?


又到了貼鏈接的時候

From Python to Go… and Back Again! Mozilla dev explains his return to Python.


做腳本還是麻煩,完成同類工作,go編碼工作量是比較高的。好處是在方方面面幾乎都是最不費腦子的那一種。適合做服務端項目。


Python雖然也是跨平台,它豐富的庫反而成了跨平台部署桎梏,我看過一個做銀行特色業務的實施過程,為了把引用的三方庫的應用程序部署在一台內網Linux伺服器上,花了三個多小時,我在看完部署過程後,想了想如果是操作很熟練至少也得半小時左右,如此複雜的部署,又是並不能隨時停掉的系統,如果有版本bug或漏洞會讓升級維護很麻煩。

如果是go語言部署的話完全不會有這種麻煩,生產機直接上傳二進位文件,跨服遷移代碼直接copy過去。

而且go語言的庫現在不僅多,而且庫升級兼容性很好。

自帶的net,http,template完全可以做一個Web應用程序,性能還相當不錯。

還有各種資料庫的連接庫,pdf,excel生成庫等,當然像Python那種各式各樣的庫的確不夠,畢竟時間軸在那兒,但缺少的自己可以寫嘛。

至於學習曲線,go的確要難一點,但無論是性能還是後期維護,就會覺得多花一些時間學習真的很值。


拋開用途選語言,都是耍流氓。

如果是DBA運維那麼果斷選Ruby(Puppet等自動化運維中的神器全是Ruby)或者Python。

如果做Web開發那麼PHP、Java或者Ruby。

如果是系統級編程以及遊戲服務端那麼C++、Erlang、Golang。

如果是遊戲以及Windows相關客戶端那麼C#。

如果跨平台工具軟體那麼Java或者QT。

如果IOS/MAC那麼Swift, 安卓繼續Java,前端繼續JS。

如果是黑客腳本小子那麼JS、PHP、Python(SqlMap可謂神器)、國內還流行易語言,哈哈哈哈。

如果像題主這麼玩那隨便。

---------------------update-----------------------------

也看到很多人說從python逐漸轉向go了。

話說Python轉Go是什麼鬼,腳本小子換崗轉行?

.


轉向go之後,一切都還好么?寫起來還像python一樣順手么?還有就是如果現在把go作為平時的輔助腳本工具,可以完全替代掉python么?

  1. Go的生態鏈現在比Python還是略差的,但也只是略差,事實上Go的標庫和Python的標庫一樣豐富,還沒有Python歷史問題遺留的凌亂。
  2. 沒Python順手,實際感受代碼量要比Python多40%左右,但可用,花頭不多,出錯機率不大,性能出奇的高。
  3. 不可以,該Python的時候還用Python,節了婚偶爾擼幾管還是很爽的。


Python是腳本,Go是編程語言,該用哪個用哪個。


python和go不衝突,解決的領悟不一樣。python是應用系統如web,後端服務,數據處理或單純作為腳本,而go定位是系統級編程語言,二者有重疊的地方,但更多的是可以互為補充,我就同時使用這兩個,很爽


以前,我用C++,界面也用Qt,後來,用python,再然後Go,C#。現在,主要Python,Go,C#。用哪個不重要,關鍵是熟悉的,方便的。工具這玩意,當然是多多益善,只不過是某個職業對哪個工具更擅長一些而已。


看你怎麼用了,有些地方,python肯定比go簡潔,要求並發與速度的場合,python難以逾越go。


如果只是自己用用的腳本,還是就小甜餅python吧。速度慢和部署難這兩個python老大難,對你來說都不是問題。

go的代碼是很吵的,隔幾行就要判斷一次err != nil,很費鍵盤,不適合居家休閑用。


總不能一門語言獨大吧,語言的應用場景很多的,寫業務用的,連資料庫用的,渲染界面用的,做配置用的,教學用的,研究用的,裝逼用的。。。


性能黨的話肯定要不惜一切代價適應go

更高級一些,去搗鼓C++,從http server開始寫

腳本語言拿Python寫才對。。shell那反人類的語法我都沒眼看了。。嗯,自己造個操作系統吧。


go用來做這個真心不合適,寫個伺服器小工具啥的還是給Python吧,動態語言各種風騷


推薦閱讀:

Golang 在國內是否過譽了?
如何看待許式偉談Go Erlang並發編程差異?
Go語言的核心特性有那些?
Go語言在Linux中後台運行的問題?
如何看待Phoenix用40核128G內存的機器只能同時保持僅僅200萬WebSocket連接?

TAG:Python | Go語言 |