golang

試試 golang 的過程,做一下筆記

基本上,是很棒的開發體驗

優點

1. 語法簡潔,但是嚴謹,限制 import 的位置,function name 的第一個字大小寫代表 public 或是 private ,程式中沒有用到的 import module 或是 variable 會有編譯錯誤,編譯速度飛快,和 Java 及 C++ 比較,你一定會感動到流眼淚,當然不拿什麼 IDE 快捷鍵,或是安裝插件的功能,單純語言本生的語法探討,C 的 pointer,Python 的 slice ,anonymous function

2. 用 type struct , type interface , receiver function 的方式,達到類似物件導向的繼承多型,介面功能(我也不是什麼物件導向專家,無法做更深層的探討)

3. 語言本質上的簡化,讓學習的曲線平緩,像是在寫手稿語言一樣,人員訓練比較容易 (像是找一個,會C++ 的可能一年,說的上熟 C++ 的可能要N年 XD )

4. 內建 automatic garbage collection ,基本上,不需要去個別管理記憶體,不過這個特性記得不要濫用 XD

5. Concurrency 有 gorountine 及 channel 的實作方式,也有像傳統 threading 方式的實作方法,簡化很多

6. gofmt 定義一致簡易的 coding style,對程式碼日後的可讀性有幫助

7. 內建 testing 的模組及結構

缺點

1. 工作機會少 (如果你是抱著開心的心態,這一點沒差)

2. 可用成熟第三方模組比較少,像是 Java ( Maven Central),Ruby(gem),Python(pypi), javascript (npm) (這一點很難說,目前golang 就可以直接在 import 區塊 import hg, git, svn 還有 bzr 的 source tree ,到底集中式,還是分散式好,很難說,但是有一個套件管理中心很重要,像是 javascript 的 npm 粉贊) ,目前 golang 可以看到的套件 http://godoc.org/ 大約 6000 多個套件左右,再扣一些測試,或是非常 beta 的套件,目前第三方模組比較缺乏


說完了,有興趣的朋友可以繼續看

如何入門,真的很簡單,一般看一份蘋果日報的時間,基本的語法就可以看完了
有 C ,Python ,Java,Ruby 基礎的朋友可能更快,最下面有書本的連結

建置環境

1. 直接由官方網站下載安裝,FreeBSD ,Mac,Linux,Windows 都有,我主要的說明是在 Debian Linux 下面進行,下載 https://code.google.com/p/go/downloads/list ,安裝說明 http://golang.org/doc/install#introduction

2. 設定 env ,記得把 GOBIN 的路徑加到 $PATH 裏面,windows 的朋友請進行設定環境變數