怎樣評價《無根的根:無名師的 Unix 心傳》?


《Unix 編程藝術》中,作者花了一本書的時間來展開解釋 KISS 原則。

這些故事之所以是附錄,不是讓你一上來就看的。

雖然有一定模仿中國的禪宗故事,其實圍繞的還是 KISS 原則以及其它哲學之道:

  • 萬行碼:http://i.linuxtoy.org/docs/guide/ch12s02.html

    表面看,是在說 Unix 技術的優越,Unix 的管道機制是個偉大的發明,用來方便傳遞 IO 數據,快速將兩條指令組合而實現更複雜的任務,比傳統的 coding 要高效很多;

    進一步看,講的是把任務分解,化繁為簡,再步步攻下,才是真正的實踐之道;

    當然,文中以管道為例,並非說 C 不好;

    運用到目前的軟體開發技術中,其實是 Agile Development,就是創建可復用的模塊和組件,合理劃分以及解耦,並儘可能開放簡單通用的介面互操作;

    只是 Unix 很早就把這個思想給解讀透,並且付諸實踐中;

  • 腳本狂:http://i.linuxtoy.org/docs/guide/ch12s03.html

    表面看,腳本狂自身的變化,從滿口 Leet 語(比如 e = 3,o = 0 等黑客慣用語)到正常的語言;

    進一步看,講的是做人的道理,要做一名優秀的黑客,先學會做人;

  • 雙路論:http://i.linuxtoy.org/docs/guide/ch12s04.html

    表面看,是說兩條軟體設計準則,簡單和健壯,以及兩者如何平衡;

    進一步看,矛盾是具有對立和統一特性的;

    對立的時候只需要關注該關注的方面,統一的時候,選擇好折中點;

  • 方法論:http://i.linuxtoy.org/docs/guide/ch12s05.html

    表面看,似乎會讓人一頭霧水;

    進一步看,任何事物都有強有弱,程序的弱如優化時的性能瓶頸,而漁夫的弱如不會游泳;

    漁夫如果是只考慮產能(能捕到很多魚),而忘記自己的弱(不會游泳),很有可能因為漁船超重而發生意外;

    方法論其實是對於自己弱的地方能找到合適的補救方案,從而把事情做好;

  • GUI 論:http://i.linuxtoy.org/docs/guide/ch12s06.html

    這個有點難懂,請參考知乎問題:怎麼理解《無名師的 GUI 論》?

  • Unix 狂:http://i.linuxtoy.org/docs/guide/ch12s07.html

    表面看,是在大師和 Unix 狂熱者在討論各種尊者的發明中的缺憾,卻激怒了狂熱者;

    進一步看,狂熱者之所以被激怒,正是因為缺少對事物客觀的認知,而只看重各類技術帶來的好處;

    狂熱者之所以不能成為大師,就如同文中最後所講:「這些尊者之智,就是了解自身之愚」;

  • Unix 傳統論:http://i.linuxtoy.org/docs/guide/ch12s08.html

    表面看,是在討論 Unix 到底是什麼,一般人的理解可能只是它的名字、或者源碼,其實不然;

    進一步看,Unix 之所以為 Unix,是因為它的編程藝術以及哲學思想,是因為 Unix 創始者將 coding 這種看似單調的工作提高到了藝術和哲學高度,並貫徹各種簡單同時優秀的思想,融入代碼之中,優雅地表現出來,這才是 Unix 的精髓。

大部分小故事的點睛之筆都在文章倒數第二段。

結合全書,閑靜下來的時候,多讀多想,自然會有新的收穫。

所以,以上均為個人閱讀理解,歡迎指正。


一晚,無名師和Nubi參加一個程序員的探討會。有個程序員問Nubi和他的老師來自哪所學校。當得知他們是Unix大道的追隨者時,程序員頗為不屑。

「Unix命令行工具太粗糙太落後」,他譏諷道。「現代的、設計得當的操作系統可以在圖形用戶界面中做任何事情。」

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

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

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

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

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

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

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

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

此時,程序員眼中一亮。

我隨便看了一段,除了說這個程序員是M以外,真的還有別的意思嗎?


寫得比較玄,大體上把Uinx的基本設計哲學闡述出來了。

初看一兩遍是看不懂的。時間長了實踐多了方可領悟。


有時候,講道理並不能讓你明白道理,有時候,還需要在你頭上敲一棍子,甚至砍掉你的手指頭。

真正的智者知道什麼時候該敲你的腦袋,什麼時候該砍你的手指頭,當然也知道什麼時候該給你講道理。


總是一亮一亮,眼睛都亮瞎了,還沒想出個所以然。


何謂「正確」?何謂「錯誤」?企圖通過別人來界定「正確」和「錯誤」的想法一開始就企圖依附於「權威」——依附是一種痛苦。啟發思考是其存在的意義。


不就因為這書叫編程藝術嗎,就特地編了幾個段子來故弄玄虛,搞得像某種宗教一樣


推薦閱讀:

Linux 上有哪些工具軟體堪稱精美?
有哪些在線 Linux 環境可以 ssh 登錄來玩?
監控程序如何編寫單元測試?
王垠當年提倡「完全用 linux 工作」,然而最近又發文挺 windows 噴 unix,這中間究竟經歷了什麼?
windows10內置的ubuntu怎麼樣?

TAG:Linux | Unix | 開源 | UNIX編程藝術書籍 |