怎麼理解《無名師的 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)專業的認識是怎樣的?