怎麼理解《無名師的 GUI 論》?

無名師的GUI論

一晚,無名師和Nubi參加一個程序員的探討會。有個程序員問Nubi和他的老師來自哪所學校。當得知他們是Unix大道的追隨者時,程序員頗為不屑。 「Unix命令行工具太粗糙太落後」,他譏諷道。「現代的、設計得當的操作系統可以在圖形用戶界面中做任何事情。」

無名師一言不發,只是指著月亮。旁邊的一條狗對著他的手狂吠。

「我不明白。」程序員說。

無名師依然緘默,指著一幅佛祖像,然後又指著一扇窗。

「你想說什麼?」程序員問。

無名師指著程序員的頭,接著指著一塊大石。

「請把話說清楚!」程序員要求道。

無名師深深蹙眉,輕拍程序員的鼻子兩下,把他扔到旁邊的垃圾箱中。

程序員試圖從垃圾堆掙扎出來之時,那條狗跑過來在他身上便溺。

此時,程序員眼中一亮。

(原文為英語,閱讀網址:http://www.catb.org/esr/writings/unix-koans/gui-programmer.html


我……我顯擺了,於是被拉來答題了。(&>_&<)

無名師的故事是 ESR 模仿禪宗問答寫的短故事。正如前面@曲維姜 提到的,解讀的隨意性很大,網上就有很多解釋。我大概也就是自己猜猜,本來也不是搞禪機問答的高手,何況這不算是禪機問題。

  • 月亮+狗+手指:禪機公案集《水月齋指月錄》。本意說月亮為道,手指只是工具。狗看著手指狂吠,暗喻只看工具不看目標。

  • 佛祖畫像+窗戶:佛就在此,你卻看著窗戶(梗:Windows?)。——佛像非佛,記得也是聖嚴法師公案中的梗,出處不確定。不過這裡似乎是被誤用了。

  • 頭+石頭:你丫腦袋就一石頭。

  • 拍兩下+扔到垃圾箱:你可以被刪除了。

好啦,就當是玩笑。佛家弟子也請一笑置之。


我大致說說我的理解。

&> 無名師一言不發,只是指著月亮。旁邊的一條狗對著他的手狂吠。

這句話代表『滑鼠單擊』

&> 無名師依然緘默,指著一幅佛祖像,然後又指著一扇窗。

這代表,單擊一個對象,然後單擊另外一個對象

&> 無名師指著程序員的頭,接著指著一塊大石。

這大概代表拖動一個對象

&> 無名師深深蹙眉,輕拍程序員的鼻子兩下,把他扔到旁邊的垃圾箱中。

這代表,雙擊,然後拖動。

&> 程序員試圖從垃圾堆掙扎出來之時,那條狗跑過來在他身上便溺。

這可能代表某個圖形界面的『智能助手』冒出來了。

結論大體是:在無名師舉出的所有例子場景中,圖形界面的表達方法都無法準確的表達用戶的意圖。——回到程序員當初的問題上來,程序員的觀點在於認為 GUI 是萬能的。而無名師只是用實例告訴他,GUI 絕對不是萬能的。


第一次在知乎回答問題,我覺得我可能認識的角度不太一樣,請指教。

誠然,這樣的故事可能會有無數解釋。但是我認為大方向不能錯。

我們可以看,無名師是做了這麼幾件事。

1 無名師一言不發,只是指著月亮。旁邊的一條狗對著他的手狂吠 然後程序員不明白。

2 無名師依然緘默,指著一幅佛祖像,然後又指著一扇窗 然後程序員不明白。

3 無名師指著程序員的頭,接著指著一塊大石 然後程序員不明白

4 無名師深深蹙眉,輕拍程序員的鼻子兩下,把他扔到旁邊的垃圾箱中。程序員試圖從垃圾堆掙扎出來之時,那條狗跑過來在他身上便溺。 程序員明白了

由前文來看,無名師這些舉動的意思肯定是為了說明 CLI 的好或者 GUI 的不足。

但又由「程序員眼中一亮」可以見得,程序員應該是明白了一個好的東西,也就是說程序員是明白了CLI的好。

那程序員是怎麼明白的呢,由總結的第四點可以見得肯定是從狗的便溺中聞到的。

那麼,狗的象徵意義就很重要。因為無名師第一次舉動就引入了狗,最後讓程序員領悟的舉動也引入了狗。

那麼,我大膽猜想。狗就代表了一個讓人認知的事物,就代表了人們對CLI的體驗,或者CLI反饋給人們的操作感受。

所以,當程序員看著CLI的時候,覺得很粗糙很落後。但是當程序員與CLI親密接觸之後,才會眼睛放光的發現CLI的好。

接著我自己試著來解釋下無名師的四個舉動吧

1 手指月亮,狗吠。明月當空,狗不服而吠。我覺得代表CLI和GUI的對立。或者是CLI和GUI的表達方式不一樣。。見仁見智吧

2 佛祖像和窗子。這個我覺得窗子(windows)代表視窗操作系統,而佛祖代表深沉穩重的CLI形象。

3 程序員頭和石頭。可以說程序員腦袋像石頭,我覺得也可以解釋成程序員代表GUI,石頭代表CLI。

這個我想的有點錯亂。。

4 程序員被摔進垃圾桶那個,上文說了吧。

================================

最後我想說,這種故事很難有什麼標準答案。我覺得我的答案也有很多不足,只是思路比較新,值得跟大家分享和商榷,所以我才拿出來。我覺得能從這樣的故事領悟出屬於自己的一點東西才是最重要的,一千個人的心中有一千個的哈姆雷特,最重要的是獨立思考和不盲從的能力。


這些段子的理解可以有很多種,我在不同的時期也有不同的理解。

我的理解很簡單,就是告訴你:對於你的那個能做任何事情的GUI,你看得到、摸得著的GUI,其實你根本不知道他背後的運行機制 ,你也搞不懂他為什麼突然尿你一臉。


禪師教會大家無中生有之後,大家就更有自信了


這讓我想起了高考中文章作者的閱讀理解答案才剛剛及格的新聞。


不用理解,我是根本沒看懂,或者故弄玄虛,或者人家本來就是覺得好玩寫出來逗悶子的


斗膽解讀一下:

無名師一言不發,只是指著月亮。旁邊的一條狗對著他的手狂吠。

無名師為用戶,手為滑鼠,狗為 GUI ,在猜測用戶意圖。

無名師依然緘默,指著一幅佛祖像,然後又指著一扇窗。

CLI 系統 與 視窗系統。

無名師指著程序員的頭,接著指著一塊大石。

專業用戶(不限於程序員) 與 一般用戶。

無名師深深蹙眉,輕拍程序員的鼻子兩下,把他扔到旁邊的垃圾箱中。

程序員試圖從垃圾堆掙扎出來之時,那條狗跑過來在他身上便溺。

雙擊,扔到垃圾箱刪除。專業用戶對應用熟悉,有完全的把握性,所以更傾向直接「命令」程序幹事而不是交互「詢問」來請求程序幹事。於是無名師將那程序員貶為一般用戶,跟光怪陸離的 GUI 交流去吧。


我的理解是...gui就是那隻狗。指月亮的時候,它不明白你要幹嘛而亂吠,它的「腦袋」就像石頭一樣,分不清真正的垃圾就在你頭上便溺...


GUI是進步的象徵 要嚴重鄙視那一群根本編程不行只能拿工具裝逼的傻逼


推薦閱讀:

Linux伺服器重啟(有可能是異常斷電)導致用戶數據損壞的原因是什麼?
把「robust」翻譯為「擼棒」最早起源於哪裡?
計算機數值模擬方法的局限?
你對計算機科學與技術(CS)專業的認識是怎樣的?

TAG:操作系統 | 圖形用戶界面 | Unix | 計算機科學 | 命令行界面CLI |