Go 破圈:Go+ 帶你快速了解數據科學領域
本文轉載自微信公眾號「腦子進煎魚了」,作者陳煎魚 。轉載本文請聯系腦子進煎魚了公眾號。
大家好,我是煎魚。
前段時間,Go 語言圈子內有一件事情特別的火,就是七牛云的許式偉帶頭基于 Go 語言,研發了一門新的語言 Go+,其面向的技術領域是數據科學領域。
Go+ 所關注的賽道,是數據科學領域,主要的佼佼者是 Python 和 R 語言(近期還有新秀 Julia 語言):
- Python 的使用量日益增高,相比下 R 有所下降。
- 程序員更傾向于在數據挖掘、分析、機器學習的領域使用 Python,統計專業等會傾向于 R。
- Python 在文檔資源、社區等上更好,很多 R 的包 Python 也有,有一些互補,畢竟 Python 也能調用 R。
為什么需要 Go+
為什么是 Go+,Python 與 Go+ 的區別有什么區別,我們主要從下面幾方面的背景和原因來分析。
- 數據科學的發展:未來數據科學將具備全領域、大數據、無處不在等特征,由 “副產品”上升為 “原材料”。
- 數據科學的地位變化:數據科學將基礎設施化,由數學軟件 (Application) 向基礎設施(Infrastructure)演進。
- 數據科學是算力革命:是計算密集型的業務。Python 不會是數據科學的終局。
- Python 的缺陷:Python 的靈活性卻導致 Python 有局限,Python 是腳本語言,無法承擔算力密集型。Python 成不了基礎設施。
未來的數據科學,必然是數學軟件和通用語言的結合,所以 Go+ 來了!
Go+ 的下一步
七牛云正在尋找共建 Go+ 語言的開發者們,歡迎大家自薦/推薦,推薦成功有大獎,地域不限。
Go+ 語言的目標:
- 把 Go 帶到數據科學領域,取代今天 Python 在數據科學領域中的位置。
- 希望 Go+ 能夠成為更好的 Go。
若大家有興趣參與,可以直接聯系許式偉大佬聊聊。同時也非常歡迎大家針對 Go+ 提出建議和交流,郵箱:jobs@qiniu.com。
Go+ 快速使用
快速上手
Go+ 安裝命令:
- $ git clone git@github.com:goplus/gop.git
- $ cd gop && go install -v ./...
完畢后,可直接執行 gop 命令查看效果,其目前一共支持 7 個指令:
- run Run a Go+ program
- go Convert Go+ packages into Go packages
- fmt Format Go+ packages
- export Export Go packages for Go+ programs
- repl Play Go+ in console
- install Build go+ files and install target to GOBIN
- build Build go+ files and execute go build command
創建一個 test.gop 文件,寫入如下樣例:
- a := [1, 3, 5, 7, 11]
- b := [x*x for x <- a, x > 3]
- println(b)
- mapData := {"煎魚": 1, "腦子進": 2, "Go+": 3}
- reversedMap := {v: k for k, v <- mapData}
- println(reversedMap)
輸出結果:
- $ gop run test.gop
- [25 49 121]
- map[1:煎魚 2:腦子進 3:Go+]