go 語言名字源于圍棋,從整個設計思想上也可以看出圍棋的味道
coding 了幾年囊骤,經(jīng)歷了動態(tài)語言 javascript 和靜態(tài)語言 java迫淹、和大而全的 c++览效。最近看了 go,感慨 go 語言設計逛漫,可以用精致來形容一下 go 語言的美黑低。隨著深入了解 go,感覺自己已經(jīng)不能自拔酌毡,想用 go 來實現(xiàn)一些功能投储。
對編程范式也接觸過一些,面向過程編程阔馋、有面向對象編程和函數(shù)式編程玛荞。當下是函數(shù)式編程不斷地挑戰(zhàn)著傳統(tǒng)的面向對象編程,到底哪個好呢呕寝?我想還是根據(jù)個人所好和能力來判定勋眯。而且并不是非黑即白,我們可以 mix 這兩種編程范式來進行開發(fā)應用下梢。
在語言設計上客蹋,我想 go 語言是革命派,吸收許多其他語言的經(jīng)驗孽江,在 go 語言中同時支持面向對象和函數(shù)式編程讶坯,也是一門多范式編程的語言。
但是并不支持繼承而是通過組合達到繼承的效果岗屏。
極簡主義
老婆就是一個極簡主義者辆琅,開始很不理解她什么東西只要是用不上就像處理掉,甚至有些反感不過隨著真實地感覺到了其帶來好處—我們不在維護一些用不上的東西花費精力來維護这刷,讓這些東西到需要他的人手上發(fā)揮其價值婉烟,我呢可能是上了年紀,也不少去購物暇屋,只賣一些用得上的似袁,即使便宜也不囤貨,不浪費節(jié)省開銷同時也為社會做了一些貢獻。
在 go 語言 rob pike 認為一些價值不大特性昙衅,或者通過核心庫可以實現(xiàn)一些功能都不會被保留扬霜,而被砍掉。也是一門語言的特性過多返回是一種麻煩而涉,同時也束縛 developer 的創(chuàng)造力著瓶,這個時候又讓我想起了 java。
其實 java 也挺好婴谱,要不也不會有那么多人愛他用他,我也是 one of them躯泰。
在 go 語言支持多重返回值谭羔,多重返回值再加上錯誤機制,可以讓我們寫出優(yōu)雅的語言麦向。
雖然 go 很好上手瘟裸,就像圍棋的規(guī)則也相對簡單。不過 go 語言向圍棋選手一樣要是想下好這盤還是沒有那么容易诵竭,是能夠真正考驗選手控制局面的能力话告。