昨天
市面上有這么多語言為啥還需要開發Go這么個語言?
07年的一天,幾位谷歌的大牛在討論用C++開發一些有關龐大的分布式集群的工作,非常繁瑣但很核心,很是鬧心,后來聽說C++又要添加35項新特性。大牛聽了很是不爽啊,於是討論能否可開發一款新的語言,運行快、編譯快、開發還快。於是幾位列舉了新語言的主要特性,並且借鑒現有語言眾家之所長。說干就干,09年go語言就誕生了。以下是當年列舉的主要特性
規范的語法(不需要符號表來解析) 垃圾回收(獨有) 無頭文件 明確的依賴 無循環依賴 常量只能是數字 int和int32是兩種類型 字母大小寫設置可見性(letter case sets visibility) 任何類型(type)都有方法(不是類型) 沒有子類型繼承(不是子類) 包級別初始化以及明確的初始化順序 文件被編譯到一個包里 包package-level globals presented in any order 沒有數值類型轉換(常量起輔助作用) 接口隱式實現(沒有“implement”聲明) 嵌入(不會提升到超類) 方法按照函數聲明(沒有特別的位置要求) 方法即函數 接口只有方法(沒有數據) 方法通過名字匹配(而非類型) 沒有構造函數和析構函數 postincrement(如++i)是狀態,不是表達式 沒有preincrement(i++)和predecrement 賦值不是表達式 明確賦值和函數調用中的計算順序(沒有“sequence point”) 沒有指針運算 內存一直以零值初始化 局部變量取值合法 方法中沒有“this” 分段的堆棧 沒有靜態和其它類型的注釋 沒有模板 內建string、slice和map 數組邊界檢查
今天
目前已經開發的優秀的應用
- Docker 開源的應用容器引擎
- K8s Google 大規模容器管理技術Borg的開源版本,可以實現容器集群的自動化部署、縮容、維護等功能
- grafana 大規模指標數據可視化展示,網絡架構和應用分析中最流行的時序數據展示工具
- etcd 高可用key-value數據庫
- ...
明天
前景光明,個人看好