三讀《UNIX程式設計藝術》

2021-08-23 13:34:50 字數 1888 閱讀 4637

三讀《unix程式設計藝術》

第一次讀《unix程式設計 藝術》是2023年的夏天。那時我正忙著把一套只肯在windows上跑的分布式儲存系統移植到unix和linux上來,業餘時間裡則正在北大裘宗燕教 授的指導下,一字一句地翻譯「古奧艱深」的r5rs;於是,像《unix程式設計藝術》這樣一本沒有太多惱人的**,又約略可以指導手頭工作的大部頭就自然成 了我臨睡前的「催眠讀物」。

真正從書中學到了什麼,現在已經很難說清楚了。只是隱約記得,《unix程式設計藝術》一開頭羅列出的那一大堆rules 著實讓我陶醉了一陣子。此前對unix的認識幾乎都是零散的。從make到cc,從emacs到gdb,從ssh到xinetd,儘管我知道在遇到障礙時 去howto或faq文件中翻找答案,知道在不知所措時請出開源軟體的**來幫忙,但我卻總也想不明白,乙個普通的程式設計師該怎樣才能在unix的世界裡從 無到有地勾畫出一幅真正屬於自已的圖景。一種強烈的恐懼感似乎總是與我形影不離——那是一種獨自走進克里特島或是秦始皇陵的人都會產生的恐懼感,是一位缺 乏經驗的程式設計師在unix種類繁多的工具、介面與原始碼面前必然會遭遇的恐懼感。也許,《unix程式設計藝術》裡羅列的rules是**這種恐懼感的藥方,因 為有規則總比沒有規則強,有一套充滿哲學意味的規則更要比僅有些生硬的技術規約強上百倍。通常,rules意味著堅定,rules代表著勇氣,就像電影 《transporter》中的男主角一樣,當凡事都可以用編了號的規則來描述或闡釋的時候,就連***的老大也會不由自主地對你說「i like rules」了。

閱讀的副產品是乙個有趣的可擴充套件計算工具xeval。我的確是在讀過了《unix程式設計藝術》的第五章「文字化:好協議產生好實 踐」之後才有了編寫xeval的想法的。當時,我的思維歷程大致如下:多使用者、多工的作業系統必然要為不同的應用提供相互交流的平台;最好的平台應該擁 有最簡單的實現方案; unix利用文字格式實現資訊互動的想法符合unix的kiss(keep it ******, stupid!)準則;與windows系統提供的協議或互動方式(登錄檔、剪貼簿、dde、ole等等)相比,文字格式就像「天仙美眉」一樣質樸和脫 俗;質樸和脫俗意味著實現簡單和擴充套件方便;不過通常說來,文字化的做法與命令列方式的應用結合得更好一些;為了在word或excel這樣的純gui應用 中發揮文字化的優勢,我們需要一些橋梁或隧洞;windows系統中的熱鍵和剪貼簿可以成為gui程式文字化的橋梁之一;最終實現並發布到網上的 xeval就是這樣乙個可以在gui應用中嵌入文字化應用的程式原型。

有了這樣的認識,我讀《unix程式設計藝術》時的關注重心就很自然地從工具和方 法轉移到了思想和文化上來。比如,在重讀「使用emacs整合工具」一節時,我不會再有開啟emacs動手實驗的衝動,反之,我更願意靜下心來想一想:那 些非unix出身的ide們(比如visual studio)是否已經從emacs這樣乙個「像ide一樣,但更強」的unix工具身上吸收或借鑑了足夠多的有用特性?同樣是可擴充套件的ide環境, eclipse和emacs之間是否存在本質的差異?當elisp在emacs中發揮著不可或缺的核心功效時,為什麼word裡的vba就只能扮演邊緣化 的輔助角色?李連杰在影片《霍元甲》中說,茶沒有高下之分,武術也沒有高下之分——在程式設計的世界裡,不同的文化和不同的技術之間,是否也沒有高下之 分?

第三次讀《unix程式設計藝術》是今年電子工業出版社的中譯本出版以後。我沒有仔細核檢過英文版和中文版的文句,不敢妄評譯本的翻譯質量如何如 何。但譯本把原書第二章標題中的「a tale of two cultures」譯為「雙流記」的做法的確值得稱讚。要知道,翻譯也有風格和流派上的差異。同樣是這麼乙個標題,你可以完全不考慮原文與《雙城記》之間 的雙關性,你也可以用更複雜的句式將原文中的文化內涵闡發得通通透透,但你不得不承認,「雙流記」的譯法是諸多譯法中最有unix味道的一種,最符合 《unix程式設計藝術》一書反覆強調的kiss準則。從這一點看來,unix平台上以簡約、深刻為特徵的程式設計文化在其他領域也大有用武之地,《unix程式設計 藝術》一書勾勒技術脈絡,辨析文化源流的論述方式也值得所有著書人和讀書人好好品味。

三讀《UNIX程式設計藝術》

三讀 unix程式設計藝術 第一次讀 unix程式設計 藝術 是2004年的夏天。那時我正忙著把一套只肯在windows上跑的分布式儲存系統移植到unix和linux上來,業餘時間裡則正在北大裘宗燕教 授的指導下,一字一句地翻譯 古奧艱深 的r5rs 於是,像 unix程式設計藝術 這樣一本沒有太多...

三讀《UNIX程式設計藝術》 UNIX哲學

如果在我目前的職業生涯中要選出一本對我影響最大的書籍,我一定會選擇esr的 unix程式設計藝術 第一次讀此書時資歷尚淺,更多的是當做一本課外讀物來看,但是隨著職業中接觸了更多不同的作業系統,完成了更多專案產品的設計 架構 實現,對書中所講內容產生了更大的共鳴。在第三次讀此書之際,把書中很多有價值的...

《Unix程式設計藝術》

軟體設計的經典書籍,譯者語言功底也是了得 1 unix作業系統發展的歷史,武俠口吻描述的頗有趣味 2 文字化的協議設計方法,應用協議的三元老,學習協議設計的好出處 3 透明性和可顯性,讓活 還是活 讓死 還是死 4 管道之於unix的意義 將大程式劃分成多個行為簡單的子程式,定義好介面。討論了程序執...