起因
i stood there gaping for a few seconds.啥意思呢?趕緊查字典,字典的解釋是:
stare with mouth widely open.原來是張著嘴巴瞪著眼睛的意思,是乙個stare的動作加上乙個張嘴的動作。那什麼是stare呢?英文解釋為
look directly and fixedly.如果自己品味這些詞,你會發現語言的定義和程式設計多麼相像。我們有兩個函式:
function gape() {語言就是這樣迭代,用簡單的詞,加上一些修飾詞或者加上另外乙個意思,組成乙個新的意思,並且定義為乙個新詞。stare();
mouth_widely_open();
function stare() {
fixedly(directly(look()));
語言就是迭代的定義
三年級的小學生就把最基本的詞學完了,但這遠沒有到掌握語言的地步。還有大量的基本詞定義出來的詞,還沒有學。這其實並不阻礙表達,但表達得會囉嗦。比如乙個小學生不會說stare,但會說:look directly and fixedly。甚至還會說:look directly and fixedly with mouth widely open。他本可以說:gape。前者不但囉嗦,而且很難進一步在此基礎上表達,同時一旦表達的複雜性增加,不容易理解。
程式設計就是這樣。如果look directly and fixedly常被使用,程式設計師會定義函式為stare,stare with mouth widely open足夠常用,就會定義函式為gape。如果在乙個特定的群體裡,一種奇怪的動作 gape with left legs kicking and right hand swinging 要是真的用得多了,他們就會定義乙個新的詞,比如說gakiswing什麼的。這就是術語的由來,也是黑話的起源。
用現有語言定義更加專業的語言,最大的風險在於,如果聽的人沒有學過這個單詞,就會丟擲 function undefined 錯誤,溝通的效果就沒有達到,這是高效和準確的定義帶來的麻煩。
整個計算機領域的封裝,重用就是在定義語言,不得不說,語言是有高階和低階的(不帶任何褒貶含義,就是定義的底層稱之為低階,由此定義出來的為高階)。為了表達效率的提高,應該不斷的構建,致力用更高階的語言寫程式,就可以用別人畫的時間的零頭完成同樣的功能。
公司的黑話
對於公司也是這樣。多年來我發現乙個有趣的現象。乙個好的公司,常常是黑話多的公司。為了效率,大家不斷的發明縮寫,再發明縮寫的縮寫,說得多了,讓外人和新來的員工摸不著頭腦。比如麥當勞裡面喊的:「墨卷辣堡中薯小可外帶」 一樣。只要聽的人也有同樣的定義,這比顧客的語言高效多了。
如果你聽到乙個公司裡面有很多你聽不懂的東西,說明他們在努力的創造著些什麼。黑話的名詞多(如果願意你可以定義為「黑名」,呵呵),說明他們建造了些東西,可能是系統,工具,場所或者概念(比如百姓網的牧野,官渡,菩提樹什麼的)。黑話形容詞的出現,說明自己在定義標準(「熊貓一樣的」);而黑話動詞是在定義行為方式。這些定義和積累,是乙個公司不同於其他公司的長久的文化基因。
大眾溝通
高階語言有乙個問題,就是它只能在乙個非常有限的小環境使用。它的目的是為了效率和準確。如果對於大眾溝通,我們就必須重新回到最通用的語言上來。賈伯斯在公共演講的時候盡量用短句,用小學生都能聽懂的詞,是為了溝通。再準確的詞,一旦受眾腦子裡面沒有定義,還不如用最簡單的每人都有的模組。我們必須意識到大眾溝通時我們必須妥協的東西,以及在公司內部或者自己乙個人寫程式時候沒有這種妥協多能帶來的巨大的便利。
所以,我們應該努力建造自己的詞彙系統來表達,尤其是在計算機的世界;而在和很多人溝通的時候,盡量把自己限制在乙個通用詞的範疇裡面。
所謂之,用專業語言表達,用通用語言溝通。
語言表達模型
也許有些人會反感套路,我以前也這樣,總覺得有點矯作淫巧。但是,套路最大的乙個好處是保證你的表達不會有太大紕漏。與此同時,按套路行動還可以倒逼你按正確的方法思考。這也是行為心理學最大的乙個貢獻,它告訴我們 不僅僅思考可以左右行動,行動也可以觸發思考 s situation 情景 c complicat...
Go語言 表示式
go語言僅有25個保留的關鍵字,下面我們就列舉下這25個關鍵字 break default func inte ce select case defer gomap struct chan else goto package switch const fallthrough ifrange type...
C語言表示式
逗號表示式逗號表示式 就是用逗號隔開的多個表示式,從左向右依次執行 exp1,exp2,wxp3,wxpn注意 整個表示式的結果是最後乙個表示式的結果。void test 下表引用 函式呼叫和結構成員 1.下表引用符操作符 運算元 乙個陣列名 以後索引值 int arr 10 arr 9 10 有兩...