網頁

搜尋此網誌

2013年7月21日 星期日

Go Programming Language

最近檢視一下Google開發的Go程式語言,這裡是一些學習筆記。
  • 發明者
    • Robert Griesemer
    • Rob Pike
    • Ken Thompson (B語言發明者)
  • 開發小組,總共有5人,除3位發明者外,還有
    • Ian Taylor
    • Russ Cox
Go程式語言的發展歷史,這部份可以參考常見問題,摘要如下:
Go程式語言的標準規範:http://golang.org/ref/spec

Go程式語言的簡介,參考『The Expressiveness of Go』投影片的內容
  • 發明原因:為了Google內部需要
    • 有效率大規模的編程
    • 加速編輯撰寫
    • 分散式系統
    • 多核心與網路硬體
  • 速度與安全,或容易使用,結合下列兩類語言的特質
    • C++, Java
    • Python, JavaScript
  • 設計4原則
    • 簡單(simple)
      • 概念是容易理解認識的
    • 正交(orthogonal)
      • 混合概念是清楚的
      • 容易理解和預測發生什麼行為
    • 簡潔(succint)
      • 不需要預先宣告任何意圖
    • 安全(safe)
      • 違反的行為應該被偵測到
  • 簡單原則可以從語言的關鍵字評比
    • Go語言:25個
    • Python 2.7:31
    • C (K&R):32
    • C++:48
    • C#:77
  • 著眼點
    • Go相信程式設計師所寫下的程式碼
    • 意思是,Go試著尊重程式設計師的意圖
    • 這將是安全(safe)而有趣(fun)
    • 用比喻來說,這是安全帶(seat belts)和輔助輪(training wheels)的差異
到這裡為止,對Go程式語言已有初步的認識,了解Go是為了大規模的分散式系統而發明的程式語言。目前工作上也沒有這類應用場合,所以也不會特別花心思去學習,但Go在大規模Web Application上的應用確實有潛力,值得留意Go程式語言的發展。

###

沒有留言:

張貼留言

熱門文章