為什麼Go語言設計受到歡迎?
Go言的參與者Dave Cheney針對GO語言為什麼當前越來越受歡迎的原因提出了一些新的見解。
原文見:Go’s Language Design Leaves Others Behind
Cheney指出大多數現代語言都是從簡單出發,最後卻很少實現強大的目標,他認為複雜語言其內部的笨拙語法其實使用“富有表現力”等詞語委婉掩蓋了,這些複雜語言不會直接承認他們在簡單和直接上做得很失敗。
大多數語言起初理想目標是簡單,但是當他們試圖加入前人語言的同樣特性以後,反而失去了簡單的目標,作為一個新語言通常面對如何替換以前語言的壓力,成為那些被替換語言的子集變成了這些新語言的一個目標(banq注:好像在黑Scala之類JVM語言),結果導致了巴洛克風格(banq注:華而不實),我們在其他語言中到處看到不必要的複雜性。
Cheney認為一個新語言應當是精製的,不是單純對老語言的替換,應該是從前任語言的錯誤中得到學習。
為什麼Go語言不同於前期的語言?首先,它離開了前期語言達成的公約,或者說約定俗成,這些約定其實沒有意義,Go成功就是因為將這些約定扔掉,相當於加入了新功能(banq注:少則意味多,減意味著增)。其次,Go語言允許程式設計師建立堅實的基礎,Cheney使用流沙比喻比喻其他語言,幾十年來這些繁瑣的語言將大型架構其實建立在流沙上,基礎不簡單也不堅實。
你不能在事後再增加簡單,簡單隻有扔掉一些東西后才會得到。
發明一個可理解的語言不意味著就是讓它變得容易,而是讓它直接。Cheney進行了一些舉例說明,比如限制語法的數量能夠方便於有經驗程式設計師,同是又避免疏遠新程式設計師。
Cheney相信今天需要簡單的程式設計是不言而喻的,Rob Pike作為Go語言的一個建立者說:Go語言不是來自一個委員會的群體作品,而是代表Ken Thompson, Robert Griesemer 和他自己的經驗昇華”。所有有經驗的程式設計師都同意在Go中不需要額外的垃圾,Go為簡單設計,簡單是其原始特性,而不是副特性。
Cheney還談了GO在大型團隊合作中的好處。
Cheney認為Go秉承了UNIX哲學:簡單而鋒利,結合在一起能夠完成更復雜的任務。更重要的是,能完成語言原始作者都沒有想到的任務,Go的包可以透過更簡單的介面彼此互動,這些介面相比Java或C++更簡單沒有限制、可組合,從而引向更簡單實現。
Cheney還解釋了GO語言在容器集裝箱流程市場上的強有力地位(Docker)。
最後他說:Go語言適合願意把事情做好的程式設計師。
原文見:Go’s Language Design Leaves Others Behind
Cheney指出大多數現代語言都是從簡單出發,最後卻很少實現強大的目標,他認為複雜語言其內部的笨拙語法其實使用“富有表現力”等詞語委婉掩蓋了,這些複雜語言不會直接承認他們在簡單和直接上做得很失敗。
大多數語言起初理想目標是簡單,但是當他們試圖加入前人語言的同樣特性以後,反而失去了簡單的目標,作為一個新語言通常面對如何替換以前語言的壓力,成為那些被替換語言的子集變成了這些新語言的一個目標(banq注:好像在黑Scala之類JVM語言),結果導致了巴洛克風格(banq注:華而不實),我們在其他語言中到處看到不必要的複雜性。
Cheney認為一個新語言應當是精製的,不是單純對老語言的替換,應該是從前任語言的錯誤中得到學習。
為什麼Go語言不同於前期的語言?首先,它離開了前期語言達成的公約,或者說約定俗成,這些約定其實沒有意義,Go成功就是因為將這些約定扔掉,相當於加入了新功能(banq注:少則意味多,減意味著增)。其次,Go語言允許程式設計師建立堅實的基礎,Cheney使用流沙比喻比喻其他語言,幾十年來這些繁瑣的語言將大型架構其實建立在流沙上,基礎不簡單也不堅實。
你不能在事後再增加簡單,簡單隻有扔掉一些東西后才會得到。
發明一個可理解的語言不意味著就是讓它變得容易,而是讓它直接。Cheney進行了一些舉例說明,比如限制語法的數量能夠方便於有經驗程式設計師,同是又避免疏遠新程式設計師。
Cheney相信今天需要簡單的程式設計是不言而喻的,Rob Pike作為Go語言的一個建立者說:Go語言不是來自一個委員會的群體作品,而是代表Ken Thompson, Robert Griesemer 和他自己的經驗昇華”。所有有經驗的程式設計師都同意在Go中不需要額外的垃圾,Go為簡單設計,簡單是其原始特性,而不是副特性。
Cheney還談了GO在大型團隊合作中的好處。
Cheney認為Go秉承了UNIX哲學:簡單而鋒利,結合在一起能夠完成更復雜的任務。更重要的是,能完成語言原始作者都沒有想到的任務,Go的包可以透過更簡單的介面彼此互動,這些介面相比Java或C++更簡單沒有限制、可組合,從而引向更簡單實現。
Cheney還解釋了GO語言在容器集裝箱流程市場上的強有力地位(Docker)。
最後他說:Go語言適合願意把事情做好的程式設計師。
[該貼被banq於2015-03-03 11:04修改過]
相關文章
- 為什麼Python語言那麼受歡迎呢?Python
- 作為一門程式語言 Python為什麼如此受歡迎Python
- 為什麼我最喜歡的程式語言是 GoGo
- Python語言具有哪些優秀特徵?為什麼受歡迎?Python特徵
- 評: 為什麼我不喜歡Go語言式的介面Go
- 為什麼Go是一種設計糟糕的程式語言Go
- 學習Python有什麼好處?Python語言為什麼這麼受歡迎?Python
- 為什麼Java能夠持續的受到歡迎呢?原因有這些Java
- 為什麼那麼多人要學習go語言?go語言有什麼特點?Go
- 為什麼我喜歡 Lisp 程式語言Lisp
- 為什麼很多公司都轉型go語言開發?Go語言能做什麼Go
- 為何資料庫優先ORM模型在Go社群受到歡迎? - Reddit資料庫ORM模型Go
- 什麼是Go語言?Go語言有什麼特點?Go
- 為什麼我不喜歡Go語言式的介面(即Structural Typing)GoStruct
- 為什麼Linux這麼受歡迎?Linux
- 2020 年 HackerEarth 調查:Go 語言成為最受歡迎的語言(內含 Go 語言圖譜下載)Go
- 為什麼 Go 語言能在中國這麼火?Go
- 2020年什麼程式語言最受歡迎,待遇最高?
- 為什麼要學習Go語言呢?Go
- 為什麼 Go 語言 struct 要使用 tagsGoStruct
- 我們為什麼要使用GO語言?Go
- 為什麼大部分的 PHP 程式設計師轉不了 Go 語言?PHP程式設計師Go
- 為什麼我們需要一門新語言——Go語言Go
- C++ STL的go語言版本,歡迎各位大佬完善C++Go
- go語言能做什麼Go
- 工作流反思系列:什麼樣的工作流會受到歡迎
- 為什麼bootstrap不再那麼受歡迎了?boot
- Python是什麼?為什麼Python受歡迎?Python
- [翻譯] 為什麼 Golang 在系統程式設計中如此受歡迎?Golang程式設計
- 我為什麼喜歡程式設計程式設計
- 為什麼Javascript在求職中不受歡迎JavaScript求職
- 為什麼 PostgresSQL 比 mySQL 更受歡迎?MySql
- 為什麼每個人都討厭GO語言?Go
- 開放出版:為什麼我們需要一門新語言?許式偉《Go語言程式設計》序Go程式設計
- 為什麼Python要比其他語言更受喜歡?Python
- 為什麼NoSQL資料庫這麼受歡迎?SQL資料庫
- 物聯網路卡為什麼那麼受歡迎
- Go語言適合做什麼 ?Go