我已經半年沒有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。
GNU/Linux 不是每個人都想用的。如果你只需要處理一般的事務,打游戲,那么你
不需要了解下面這些了。
我不是一個狂熱的自由軟件份子,雖然我很喜歡自由軟件。這篇文章也不是用來推
行自由軟件運動的,雖然我覺得自由軟件運動是非常好的。
這篇文章也不是用來比較 Linux 和 Windows 內核效率,文件系統(tǒng),網(wǎng)絡服務的。
我現(xiàn)在是作為一個用戶而不是一個開發(fā)者來說話的,我們的討論是基于操作,應用
層面的。是為了告訴大學里還不了解,或者不理解 UNIX 的科學工作者和大學生,
UNIX 比 Windows 更適合用于科學研究工作,請大家理解 UNIX 的工作方式,不要
用 Windows 的標準來要求 Linux,而要用一個科學工作者的標準來要求自己,用
UNIX 的思想來武裝自己。
我顯然是反對在大學,特別是理工科專業(yè)推廣 Windows 的。我也反對在對“娃娃”
們的計算機啟蒙教育中使用 Windows。因為 Windows 不論從技術上,經濟上,思想
風格上都是與我們培養(yǎng)高科技人才的目標格格不入的。Windows 的流行屬于歷史遺
留問題,爺爺一級的人當然已經不可救藥,但是我們不應該讓下一代繼續(xù)走上歧途。
UNIX 不是計算機專家的專利
當我建議一些非計算機專業(yè)的人用 Linux 的時候,很多人說:“UNIX 是計算機系
的人用的,我們不能理解。” “UNIX 是男孩用的,我們女孩不用。”
但是其實世界上的大多數(shù)科學家和工程師幾乎用的都是 UNIX 作為他們的電腦工具。
就因為它簡單,可靠,穩(wěn)定,強大,有趣。甚至很多時候 UNIX 就是唯一的選擇。
你說:“我們都會用 UNIX 的話,你們計算機專業(yè)的人還用來干什么?” 很容幸的
告訴你,計算機專業(yè)的有一部分人就是專門為你們提供這樣強大而方便的計算機工
具的。如果他們制造的工具只有自己會用的話,那這個工具還有什么用?
理解 GNU/Linux 不要用 Windows 的標準來要求 Linux。
由于GNU/Linux這個詞太長,下面如果沒有特別指明,“Linux”就是指“GNU/Linux”。
在這個年代,恐怕沒有人需要我來介紹 Linux 是什么了吧?如果你覺得“Linux 只
不過是跟 DOS 差不多的東西”,那請問問你旁邊的 Linux 用戶,Linux 到底是什么?
那為什么我還要寫一篇這樣的文章?因為,我發(fā)現(xiàn)還有很多人不不理解 Linux 和
UNIX,雖然他們也在用它,但是他們有時會問:“為什么 Linux 不能像 Windows 那
樣 ……?”,“怎么Redhat Linux不能 mount NTFS 分區(qū)!”,“Linux 下用什么
整理硬盤?”,“什么時候OpenOffice才能完全兼容Word文件?。?#8221;,“現(xiàn)在還有什
么Windows能干的事情Linux干不了的?”……
他們有40G的硬盤,卻只為 Linux 分配了2G空間,有時還抱怨“這個東西怎么占這么
多硬盤!” 似乎 Windows 該占用大部分硬盤。他們把重要的數(shù)據(jù)裝在Windows的分
區(qū),似乎信不過Linux。他們總是到處尋找新奇的,好看的GUI程序,對命令行的東西
一概不屑一顧。他們對Drag&Drop,菜單配置,自動升級非常感興趣。他們如果找到
一個很像 Windows 程序的 Linux 程序,一定會很高興的說:“哈哈!Linux 也能……了!”
如果Linux在某種測試中勝過Windows,他們會高興得跳起來。他們沒有辦法用Linux
解決問題的時候,甚至用Wine來運行Windows程序。有時實在沒辦法,只好重起到
Windows,或者干脆省得麻煩,在 Windows 下裝一個 VMWare 虛擬一個 Linux 玩。
你如果出現(xiàn)了上面的情況,說明你的思想受到了 Windows 的某種潛移默化的影響和
誤導。你沒有能夠從本質上理解存在于 Linux 身上的 UNIX 思想。你支持 Linux,
你喜歡 Linux,你能從中感覺到快樂,這非常好。你現(xiàn)在只需要明白的是:Linux 從
來就不是一個玩具,它是天才UNIX的后代。UNIX 是自晶體管發(fā)明以來最偉大的發(fā)明,
它從誕生那一天開始就比 Windows 的設計出色。
你要體會什么叫做“設計”,一個糟糕的設計并不是到后來縫縫補補就可以變好的,
而一個出色的設計,不但可以以不變應萬變,而且可以影響到后來者。一個出色的設
計配上一個出色的實現(xiàn),那就是非常出色的發(fā)明。Linux 就是這樣的一個出色的發(fā)明。
Linux 并不需要追趕 Windows,也不需要打垮微軟。它的最終目標是改變整個計算機
世界,還人們自由,給人們樂趣和方便。
Unix 是簡單的,你不需要成為一個天才也能理解這種簡單。
UNIX的設計者 Dennis Ritchie 說:“Unix is simple. It just takes a genius
to understand its simplicity.” 但是我不這么認為,因為我不是一個天才,但是
我卻勇敢的把 Windows 完全刪除掉,遇到不明白的事情的時候努力用 UNIX 的方式
去解決,而不是尋求 Windows 的幫助?,F(xiàn)在我體會到了 UNIX 的思想和好處,我可
以用比 Windows 高效幾倍的效率工作。因為我相信這樣的信念:“Windows 能辦到
的事 Linux 一定能辦到,而且辦的更好。”
這小節(jié)開頭的話應該改成:“Unix 是簡單的,你不需要成為一個天才或是計算機專
家。但是在這個沖斥著 Windows 錯誤觀念的世界,你需要信念和勇氣才能理解它的
簡單。” 我下面就告訴你一些我理解到的東西。首先,你要知道的是微軟在國際科
學領域是根本沒有地位的。
微軟的地位
微軟的名聲在歐洲和美國的大學里,特別是在計算機系里之壞,大家可能有所耳聞。
我認識的 MIT,Stanford 的教授,貝爾實驗室的專家,甚至一個歐洲小國的高中計
算機老師都絕口不提微軟的名字。在他們眼里,微軟只是一個沒有真技術,專靠在落
后國家商業(yè)宣傳和壟斷經營的小公司。這個“小”并不是說它人少,錢少,而是說它
先進技術少。
我上次和王益合作寫了一個算法演示程序,那個算法是貝爾實驗室一位科學家Steven
Fortune很天才的發(fā)明,為了程序能夠被身邊大多數(shù)人使用,我們選擇了 VC+MFC 作為
平臺。我在分析算法時還得到 Fortune 很熱情的鼓勵,寄給我一份資料,還多次回信
耐心的給我講解了很多細節(jié)。但是程序完成之后,我把樣品發(fā)給 Fortune,他回信說:
“對不起。我機器上沒有 MFC。” 話說的很客氣,但是我已經感覺到了他對 Windows
的不屑。然后我把 MFC 靜態(tài)編譯進程序再發(fā)給他,他就沒有再回信了。他顯然不是瞧
不起我,而是確實有難處。
你能感覺到這位科學家對微軟和 Windows 是什么態(tài)度了吧?不是反感,而是他心里根
本沒有 Windows 這個東西!微軟在高科技領域沒有發(fā)展,那么它怎么生存呢?到發(fā)展
中國家去發(fā)展一下,他們的人民還對電腦一無所知,我說不定甚至可以打入大學的計
算機系呢。我送他們軟件,我捐錢蓋大樓,我出錢找圖靈獎獲得者來演講,讓他們覺
得我們都是科學家!
好了,現(xiàn)在全國的大學包括清華,幾乎所有人機器必裝盜版 Win2000,Office XP,學
校的選課系統(tǒng)是非IE不能正確瀏覽,論文用 Word 編輯,演示用ppt做,email 的通知
附件是 doc 文件,你不用 Word 打不開,連 863 項目都用 VC 寫程序了。我很久以
前就看到一份報紙說,“微軟為什么不嚴厲打擊盜版?” 這篇文章說,微軟非但不打
擊中國的盜版行為,而且有放任之趨勢。放長線吊大魚,“以后我要你們加倍的來還
我!” 確實如此,它的目的快實現(xiàn)了。
Windows 籠罩下的中國計算機教育
說句丟臉的話,比爾蓋茨很久以前是我的偶像…… //blush
在中國,比爾蓋茨被很多人奉為神圣,“少年電腦天才”,甚至有的人提到他的名字
就做出“抱拳對天”的姿勢。很多人談到微軟的“新技術”,“高科技” 都是眉飛色
舞。各種“VC編程圣經”,“深入了解 Visual C++”之類的書,在開頭幾頁都會出現(xiàn)
非常肉麻的字眼,“在那團團的混沌中,一個開天辟地的精靈,Windows 1.0,誕生了……”
微軟的軟件被這么多人盜用,那么人們是怎樣使用這些盜版程序的呢?先看看電腦培
訓班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文檔處理,Power
Point,高級班可能有 Excel,Access…… 參加各種微軟認證考試,MCSE,MSDE 的人
絡繹不絕??荚囕o導班都貼出了“280元,考過為止”之類的字樣。考試參考資料更是
昂貴,有些電腦書店整整兩書架都是“Microsoft Press”的東西。我有個同學參加認
證考試,每門考試都要200多元。而且你一次考不過可以再考,又要交錢。他后來還津
津樂道跟我說,看我,花了XXXX(一個四位數(shù))元考過了微軟認證,得到一張比爾蓋茨
親筆簽名的證書和價值6000元的 Windows XP 內部發(fā)行版。
“電腦要從娃娃抓起”,我們再來看看娃娃們學的是什么。大部分家長給孩子買了電
腦之后,他們首先就會裝一個盜版的 Windows,然后買來盜版的游戲開始玩。如果哪
個孩子會用 Delphi 編程序,那可不得了。報社記者,電視臺爭相報導,說,某某學
校的初中生某某,在別人都還在玩電腦游戲這種“初級階段”的時候就已經用 Delphi
寫程序了。鏡頭還瞄準了他顯示器上面的像框中的比爾蓋茨頭像!
我剛進入大學計算機系時還不懂得什么是操作系統(tǒng),因為我以前只用過“中華學習機”。
看到新入學的同學們各個談論的都是 “Windows 95”,“VC”…… 我簡直覺得我落
后了好幾十年一樣,整個一土人,根本跟他們答不上話。好不容易找到一個比較熟的
同學問了一下:“你們天天談論的瘟95是什么?。?#8221;答:“win95就是一個操作系統(tǒng),
跟DOS是一類。”“朵死是什么?” “你連DOS都不知道是什么?別在計算機系混了。”
學校上課當然不講VC編程之類的東西,但是上 Pascal 的老師有一次就說:“嗨,我
們學校真是落后?,F(xiàn)在別人都用 C, C++,甚至 VC 了,我們還在講 Pascal。不知道
什么時候才能有VC課啊。你們出去也是要用VC的,只好自學了。” 于是,有些同學很
多時候上課都捧著一本很重的“Windows 編程大全”之類的書,根本沒有聽課。吃飯
時就念念有詞的跟我說,“代碼的優(yōu)化是無止境的”,“匈牙利命名法真是偉大的發(fā)
明” …… 這就是中國很多大學計算機系的情況。
感覺到無知了?這不是偶然的,而是微軟長久以來埋下的伏筆。它要讓無知的大家都
把它奉為神圣,它要讓支持UNIX,Xwindow的人一旦說 UNIX 好,Xwindow 好的時候,
都被一群人圍著說教:“這個 Windows 也能做到”,“你對 Windows 有偏見”,
“微軟才是主流啊”,“你敢瞧不起 win2k?”,“.NET 就是世界潮流”,“微軟的
畢竟是新技術”,“有錢就是有技術”…… 甚至在一番論戰(zhàn)比較后敗下來還是要說:
“Windows 性能差點,但是易用性強”,“Windows 是老百姓用的,要求別那么高”,
“微軟那么有錢,以后想超過 UNIX 還不容易嗎?”……
發(fā)達國家的計算機教育
我前段時間在 USENET 發(fā)文問有關 Scheme 語言的問題時,認識了一位丹麥人。他解
決了我所有的問題,并且建議我閱讀一些很“深奧”的有關程序語言語法,文法的書,
他告訴我很多網(wǎng)站可以學習 LISP,Scheme,人工智能,算法。他叫我看 Jonathan
Rees 的論文 "Syntactic Closures"。他還打包給我寄過來一份 MIT 的 "How to
Design Programs"。他說他在自己的 PC 機上裝的是 Linux,他用 Emacs 編輯,運行
Scheme 程序。他對 Emacs 的了解和愛好真是使人驚訝。他大學本科畢業(yè)時做的畢業(yè)
設計是一個 Scheme 解釋器。這對于我來說是望塵末及了。
他是那么的不厭其煩,我的每一個問題他都詳細的回答。我有時都覺得過于詳細了,
怎么這么耐心?。课矣X得他似乎是我的高中老師。他是什么樣的人呢?我好奇的打聽
了他的情況。原來,他是丹麥一所普通高中的計算機老師。
他說他在高中里講授程序設計和算法,計算機語言文法。他說用 Scheme,他的學生不
用再為內存泄漏等程序語言本身的問題而煩惱,而專注于問題和算法本身。有利于培
養(yǎng)學生解決問題的能力,特別是用計算機解決數(shù)學問題的能力。
天哪!為什么歐洲出現(xiàn)那么多數(shù)學家,幾何學家?你看看別人重視的是什么!我們的
計算機教育如果繼續(xù)這樣下去,只會沿著彎路越走越遠!
微軟和它的朋友們的如意算盤
下面來看看微軟的收入是怎么來的。首先,Windows 98系列操作系統(tǒng),一個就是 100
多美元,每次升級又是幾乎同樣的價錢。Windows NT 還要貴幾倍,而且有用戶數(shù)目限
制,5個用戶的,10個用戶的…… 以后如果要增加用戶數(shù)目還要按比例付錢。
花了如此多錢買來的操作系統(tǒng)就能用了嗎?它竟然連壓縮程序都沒有提供!你裝上
Windows 之后一般第一件事就是去下載一個 WinZip 吧,“只要 29 美元”。Windows
會中病毒啊,馬上花 70 美元買一個 Norton AntiVirus 吧。還有黑客呢?再買一個
Norton Internet Security 好了,100 美元。系統(tǒng)需要優(yōu)化,磁盤需要整理,買一個
Norton System Works 是你最佳的解決方案,100美元。
可是你現(xiàn)在還是不能干正事??!你想要一個 Word, PowerPoint?那就買一套 Office
XP 吧,一起買便宜些,$459.90。
那些程序不會用啊!那些菜單怎么設置,到底有什么功能?。靠?#8220;幫助”也學不會。
買本書看看吧,我推薦“Special Edition Using Microsoft Office XP”,不貴,
$27.99。這本書里面大部分是屏幕抓圖,還是買一本舊的比較劃算,$17.85。
你如果只是當個秘書,上面的差不多還湊合了??墒悄阌懈叩淖非?,你想成為 Windows
程序員。首先買一個 Visual Studio.NET 吧,要不然怎么編譯程序。$494.95。
為了緊跟微軟動向,世界潮流,不能不注冊個 MSDN 什么的吧?這個貴一點,不過物
有所值啊,$2,799。
嗯,你現(xiàn)在已經是上層階級,白領人士了。你現(xiàn)在可以像這樣“自由”的,“安全”
的生活了:
為什么要反對使用 Windows
很多人都說不應該完全否定 Window,Windows 也有它的長處。不應該罵微軟。
對。Windows 容易操作,適合普通用戶。如果微軟把它自己定位在 P&G,Philips 那樣
的地位,能夠給我們的百姓提供周到的,完善的,價廉物美的服務。那我肯定是很喜歡
它的。
但是從上面的種種情況說明,微軟是一個野心極大的國際壟斷組織!它的產品沒有一個
是不出問題的:Windows 不穩(wěn)定,容易中病毒,而微軟不為大家免費提供殺毒軟件。我
就是要讓你們花錢買我的朋友 Symantec 的殺毒軟件,誰叫你們已經上了我的賊船?這
叫什么售后服務啊!
你買來微軟的程序,安裝的時候一般都有一個協(xié)議,說:“由于微軟的程序造成你的數(shù)
據(jù)損壞或丟失,微軟概不負責。” 我想很多人肯定覺得這個不合理,不想按那個 "I
accept"。但是你的軟件買都買來了,錢都花了,現(xiàn)在一按 "I decline",安裝程序馬
上就會退出。你只好被迫點擊了 "I accept"!這不是不平等條約嗎?
我已經目睹了好幾個朋友的文檔被 Microsoft Word 損壞,有的是編輯了十多天的30多
頁的論文,有的是費了很大工夫做出來的個人簡歷,那個朋友為此失去了到自己向往的
P&G 工作的機會。就在他要投簡歷的前一個晚上,就在那一瞬間…… 不知道他痛哭的
時候有沒有想起要投訴微軟,可是誰叫我們用的都是盜版呢,況且你還點擊了 "I accept"。
微軟仗勢已經占有大部分PC市場,制定不符合國際標準的“微軟的標準”,以不合理的
方式壓制其它公司的軟件,這個問題已經在美國司法部鬧了很久了。他甚至在 Windows
系列操作系統(tǒng)中放置能夠通過網(wǎng)絡泄漏用戶信息的代碼,以至于 Windows 剛進入澳大
利亞時被澳大利亞政府禁止使用。
有些人說:“微軟畢竟開創(chuàng)了一個歷史,造就了今天的 IT 行業(yè)。” 但是,如果沒有
微軟,我們今天早就用上非常穩(wěn)定,非常可靠,非常方便,非常“傻瓜”的軟件了!微
軟是阻擋信息技術發(fā)展的罪魁禍首。
微軟的程序的工作方式(注意,我只是說操作方式,病毒的事情另外算)確實適合于一般
家庭,上上網(wǎng),發(fā)發(fā)郵件,打打游戲都不錯??墒俏④泤s要把自己包裝成什么“高科技”
企業(yè),要在世界各地設置“研究院”,在大學計算機系贈送不適合用于科研的 Windows
產品,甚至出錢請圖靈獎得主來中國暢談“二十一世紀的計算”,還在大會上宣傳自己
的 .NET 技術。非要把別人認為自己是科學的,自己是領導世界高科技的。但是呢?它
什么高科技也沒有。歐洲,美國,哪一個關鍵部門在用微軟的東西?NASA? DOE? CERN?
你仔細想一想,微軟的程序對人類到底有什么重大作用?
什么是 Windows 能干而 Linux 干不了的事情?---
“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。”
有個朋友看我半年沒有用 Windows,有時就會問我:“你只用 Linux,有沒有發(fā)現(xiàn)有些
Windows 能處理的事情 Linux 干不了?”---
我回答說:“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。”
Windows 能做的有益的事情 Linux 都能做---
Windows 下的某些功能確實是我們需要的,那么 Linux 的開發(fā)者們和用戶也需要這種功
能,他們就會去實現(xiàn)這種功能,而且比 Windows 的方式好得多。由于大多數(shù)科學家,工
程師用的都是 Linux 或者某種商業(yè) UNIX, 所以幾乎所有商業(yè)的科學工程程序,比如
Matlab, Mathematica, AutoCAD, Candence的,Synopsys的,Avant! 的……全都是先有
UNIX 的版本(包括Linux),然后再考慮移植給 Windows,甚至根本不移植給 Windows,
因為 Windows 的機器一般沒有足夠的能力運行這樣的程序。你不要以為只有 Windows
才有 PSpice, UNIX 的 HSpice 要好得多,而且可以運行在大型主機上。當然它們不是免
費的,但是它們值那個價錢。
但是 Windows 下有些東西在 Linux 下沒有很相似的,或者你找到很多類似的,但是它
們每一個比起 Windows 的那個程序都要差很多,那么原因有兩種可能性:
有一個完全類似的程序,但是由于它乍一看不漂亮,被你忽略了。而其它程序雖然看起
來很漂亮,但是它們是一些初學編程的人寫的?,F(xiàn)在由于 Gtk, Qt 的誕生,Linux 下開
發(fā)圖形界面程序極其簡單,很多初中生甚至小學生都可以隨手編出一些漂亮不中用的程
序。如果你整天尋找這樣的程序挑來挑去,永遠也找不到你滿意的。當然也有一流的程
序用 Gtk 和 Qt,比如 GVIM 就可以用 Gtk 作為圖形界面,我還知道 Synopsys 一些
程序用了 Qt。
我曾經也犯過這樣的錯誤,從外表區(qū)分一切。結果優(yōu)秀的 FVWM, lftp, Mutt, wget 都
被我忽略過。當我找回它們的時候,我是那么的羞愧不已,它們現(xiàn)在都是我的朋友 我
第一次看到 FVWM 覺得它只不過是一個有很厚很難看邊框的東西。可是現(xiàn)在,我的同學
看到 FVWM 都說:“哇!真漂亮。”
有另一種完全不同的方式可以達到相同的目的,甚至更好。
很多人很關心 Open Office, Star Office, AbiWord, ... 他們多么盼望有一天某一個
Linux 程序能夠完全兼容的打開一個復雜的 doc 文檔。但是你永遠也不可能有那一天。
為什么呢?因為微軟為了占有市場,必定不會讓其它系統(tǒng)的程序能夠完全兼容它的文檔
格式。它一定會不斷變化 doc 文檔的內部結構,隱藏一些秘密,讓其它公司的程序打
開 doc 文檔時總是有某種問題,從而你必需購買 Microsoft Office 和 Windows。
你應該想一下,那么多的高智商的大學教授,科學家,學生,他們用的都是 Linux 或
者其它類型的 UNIX,他們沒有 Word 可用,怎么處理文檔呢?這么多年沒有一個像
Open Office 的程序出現(xiàn),難道大家沒有辦法寫文檔嗎?
顯然不是這樣。你看看那些高水平的學術雜志,論文,那些大學教授的網(wǎng)頁,那些漂亮
的幻燈片,它們是什么做的?原來 UNIX 用戶早就有非常方便的 troff, LaTeX, SGML
等東西可以處理文檔,而且它們比起 Word 都要高明的多。Word 顯然被這些大拿忽略
了,以至于很久以來沒有人想在 Linux 下開發(fā)一個類似 Word 的程序,除非某些公司
想搶微軟的飯碗。
很多人留著 Windows 在硬盤上的原因無非是為了用 Word 和 PowerPoint。我見過一個
教授,他的 Windows 筆記本電腦上除了 PowerPoint 什么都沒有。有一天演示的時候,
他指著堆亂字符說:“對不起,這是一個公式……怎么每次都是這樣……” 其實有比
PowerPoint 好幾百倍的東西可以制造幻燈片,你可以用最簡單的方法制造世界一流效
果的論文和幻燈片。你待會兒可以看看我的TeX網(wǎng)頁,你就會知道為什么我可以完全離
開 Windows。
Windows 能做的那些沒用的事情 Linux 永遠做不好
電腦游戲
有些人說 Linux 下不能玩 Windows 下所能得到的所有游戲。的確,Linux 下雖然也
有少量的游戲,比如 Quake。但是它沒有 Counter Strike, 沒有 Star Craft, ……
并不是說電腦游戲不該玩,但是應該適可而止。電腦是用來處理事務,幫助你學習,解
決問題的工具,而不是一個玩具!整天沉迷于電腦游戲中,而不出去感覺外面的世界,
你會變得越來越冷酷,越來越缺乏人情味。你與真實的世界越來越遠。
你可以在 CS 里殺人,你可以在 Tomb Raider 里探險,你甚至可以在 Tony Hawk’s Pro
Skaters 里滑板…… 但是 It’s not real!你雖然有很高的“反恐技巧”,但是遇到
歹徒的時候,你是那么的怯懦;你雖然控制 Laura 伸手敏捷,但是你打籃球的時候怎
么總是被人斷球?你雖然可以輕易的在 THPS 里作出一個 "360 kickflip to hangten
grind to fakie",但是你踩在自己的滑板上的時候還不會 ollie!
說回來,如果你偶爾玩一下電腦游戲未嘗不可。但是世界上有遠比 Windows + PC 更好
的游戲方式。Sony 的 PlayStation2, SEGA 的 DreamCast, Nintendo 的 N64,Namco
的街機……每一個都比 Windows 游戲精彩,每一個都有如此高的3D性能,以至于
Pentium4, Itanium + GForce4 都無法與它們比美!
Linux 的用戶們都是關心解決世界的關鍵問題的份子,他們哪里有時間用自己的機器來
玩游戲???他們每天用Linux高效的做完自己的工作就到陽光下享受自然去了。要玩游
戲也是玩一些類似推箱子,貪吃蛇之類的智力小游戲。所以,你知道為什么 Linux 幾
乎沒有游戲了吧?
“整理硬盤,優(yōu)化系統(tǒng)”
這是一個非常有意思的話題,僅次于有關“病毒”的話題。相信很多 Windows 用戶都
有整理硬盤的經歷。在很多 Windows 用戶眼里,“硬盤用久了,會出現(xiàn)碎片,速度會
減慢,需要一個程序來整理,整理硬盤的時候不要做其它工作”,這好像是天經地義
的事情。
我也曾經津津有味的看著 Norton Defrag 一點一點的把我的硬盤排序,調整,用圖形
的方式顯示出來,然后報告:“100% 沒有碎片。你的硬盤現(xiàn)在已經達到最佳狀態(tài)。”
我現(xiàn)在才發(fā)覺我那時是多么的幼稚。
Linux 和 UNIX 用戶似乎從來沒有“整理硬盤”這種說法呢?你覺得很奇怪嗎?如果
你覺得很奇怪,那說明你的思想在某種程度上被微軟的垃圾程序禁錮了。你需要明白,
UNIX 的大型主機很多必須是一天24小時,一年365又1/4天不停運轉的,要是每個星期
都要整理一次硬盤,在整理的時候幾乎不能干任何事情,那是絕對行不通的!
Linux 機器根本不用整理硬盤,這就是為什么沒有看到過 Linux 用戶整理硬盤。Linux
的文件系統(tǒng)是比 Windows 的 FAT, FAT32, NTFS 高明得多的文件系統(tǒng),它們不但可以
對文件設置權限,實施完全的保護,而且可以“越用越整齊”,“越用碎片越少”!
你應該把文件大部分放在 Linux 的分區(qū),而不是 Windows 分區(qū),因為它比 Windows
分區(qū)可靠得多。
還有更滑稽的事情就是有很多“Norton System Doctor”,“Windows 優(yōu)化大師”,
“超級兔仔注冊表魔法” 之類的程序存在,而且價格昂貴。似乎一個操作系統(tǒng)本來應
該有很多問題,需要別的廠商做程序來“優(yōu)化”它,而且為了得到優(yōu)化,你需要付錢!
這些問題 Linux 根本就沒有,所以不需要什么優(yōu)化。Linux 內核本身就是高度優(yōu)化的。
IDE
有些人在抱怨為什么 Linux 沒有一個良好的 IDE 開發(fā)環(huán)境。Linux 現(xiàn)在已經有一些
IDE 了,但是總是有很多問題。你是不是正在尋找,正在期望 Linux 某一天可以有一
個VC那樣的開發(fā)環(huán)境?你有沒有發(fā)現(xiàn)你正在進入微軟給你設下的怪圈?你為什么一定
要用 IDE?你說:“IDE 開發(fā)迅速,調試方便,適合大型程序……” 那說明微軟的程
序在你腦子里已經比較根深蒂固,你需要好好清醒一下了,看看我來告訴你。
高明的 UNIX 程序員不用 IDE,IDE 從來就是給初級 Windows 程序員用的。
你看看大型的 UNIX 程序,包括 Linux 內核,各種網(wǎng)絡服務程序,Xwindow 程序在內,
哪一個是 IDE 搞出來的?我們實驗室的 EDA 程序也沒有一個是 IDE 弄的,我還知道
Candence, Synopsys,Mentor 的高性能的圖形界面 EDA 程序也都不是 IDE 寫的。
你信不信,微軟的人在寫 Windows 本身的時候也根本不用 IDE。微軟內部程序員最喜
歡的編輯器其實是 VIM,用 VIM 的微軟程序員上次向烏干達的可憐兒童捐助了1000多
美元,這是值得稱贊的。
有一次某雜志采訪一些出名的 Linux 內核程序員,包括 Linus 在內,沒有一個人用
IDE,有的人用 VIM,有的用 Emacs,只有 Linus 說“GNU Emacs is evil”,但是其
實他用的是一種跟 Emacs 有同樣鍵綁定功能的 MicroEmacs。大家都是用編輯器編輯了
程序文件,然后用 make 這樣的自動工具調用 gcc 編譯器完成編譯工作的。甚至高級
的 Windows 程序員也不用 IDE,他們可以從命令行調用 cl,nmake 來編譯自己的程
序。雖然這樣的 Windows 程序員很少,但是他們卻是最了解 Windows,最高明的
Windows 程序員。
為什么 UNIX 程序員不用 IDE?明白了這個道理你就能體會到 UNIX 的設計思想了。首
先,一個 IDE 集成了編輯器,編譯器,匯編器,調試器,跟蹤器…… 這個編輯器功能
肯定比不上 VIM 或 Emacs,編譯器比不上 GCC,匯編器比不上 as,調試器比不上 gdb,
ddd, 跟蹤器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如
果你對調試器的功能不滿意,你只好換用另外一套 IDE,但是這套 IDE 的熱鍵,菜單,
編輯器功能,按鈕…… 跟原來那個有很大不同。你不得不花很多時間來熟悉新的環(huán)境,
而不能保持原來的某些東西。
而在 UNIX 下就不一樣了。你可以用你最喜歡的 VIM 編輯程序,你在 VIM 里可以調用
GNU make,make 可以調用 gcc, ld, ... make 的出錯信息可以被 VIM 捕獲,VIM 能
幫你在源程序里定位。你如果喜歡 icc, 你可以讓 make 用 icc 而不是 gcc。你如果
覺得 gdb 跟蹤變量時比較麻煩,你可以用 ddd 來顯示各種數(shù)據(jù)結構之間的關系。你還
可以在 Emacs 里調用 gdb,那樣就可以同步顯示源代碼了。而且 VIM 和 Emacs 還可
以編輯很多其它東西,比如信件,LaTeX 文檔,HTML,配置文件…… 你不用另外找一
個什么編輯器來干這些雜活了。很多程序比如 Mutt, tin 都可以在內部使用 VIM,這
樣就更方便了。實際上 make 在其它方面還能幫你很多忙,我的每一個比較大型的 LaTeX
文檔都是用 make 維護的。
Linux 能干的高精尖的事情 Windows 都干不了
當然有很多事情是Linux/UNIX的專利了。因為 Windows 只能裝在 PC 機上,好像以前
也有 Alpha 可以使用 Windows NT,但是就是沒見到有人用。PC 機的能力是很低的,
像我們編程序處理 NP-Hard 問題的人,用 Windows 的機器顯然速度不夠,而且有時一
個問題算上幾天甚至幾個星期,Windows 機器是以“死機”著稱的,我們怎么能放心?
所以幾乎所有科學計算程序,EDA 程序,高性能圖像處理程序都不是 Windows 的。他
們有時也會移植一些給 Windows,但是常常降低那些程序的能力。你比較過 Windows
版本的 Mathematica 和 Linux 的有什么區(qū)別嗎?
IBM 制造的最大的并行計算機有 8000 多個處理器,Windows 不可能有能力管理這么多
處理器,它用的是什么操作系統(tǒng)?答案是 Linux。
《泰坦尼克號》電影里的三維動畫,那么細膩逼真,Windows機器能做出來嗎?不行。
那也是 Linux 機器做的。
民航總局用來訓練地情人員的虛擬現(xiàn)實訓練設備,Windows 當然無能為力。那都是商業(yè)
的 IRIX 機器。
UNIX 是最早支持 TCP/IP 網(wǎng)絡協(xié)議的系統(tǒng)。它上面有很多可以互相協(xié)作的網(wǎng)絡服務程序,
它們經過多年的使用和修訂,已經達到比較完善的程度。而就在1997年,微軟的比爾蓋
茨還在揚言:“Internet 是沒有前途的。” 微軟的這個“遠見卓識”大家應該都已見
識,它后來加上的網(wǎng)絡服務程序IIS漏洞之多,讓公安部都頻頻發(fā)出警報,大家也是見識
了的。
其實你知道了,Windows 沒有一樣有用的事情能比 UNIX 干的更好。
Linux 干不了的有用的事情 Windows 照樣干不了
當然 Linux 不是萬能的。它也有不能干的事情,電腦也有干不了的事情。但是 Linux
干不了的事情,Windows 肯定也干不了。這些事情就是我們需要探索,需要努力的事情
了。在你探索的過程中,Linux 必定是你的好伙伴。
不要把Linux和Xwindow掩蓋起來!不要把我們的用戶當成傻瓜。
什么?你早就知道 Windows 是垃圾?噢!你怎么不早說呢!害我廢話這么多。嘿嘿。
“好了。你知道 Windows 是垃圾,你現(xiàn)在用什么?”
“Linux + Xwindow”
“那我問你,Xwindow 是什么樣的?”
“不就是跟 Windows 差不多嗎?只不過 ’Start’ 按鈕比較方,而且上面不是一個
Windows 標志,而是一個腳丫子。點擊一下居然還有很漂亮的中文菜單。我喜歡!”
“你知道什么是‘根窗口’嗎?”
“不知道。從來沒聽說過呢?”
“根窗口就是遮蓋整個屏幕的那個最大的窗口。”
“哪兒有什么窗口啊!我沒有看到呢?”
你發(fā)現(xiàn)了問題嗎?這些 Linux 用戶說是在用 Linux 和 Xwindow,但是他們對 Linux
和 Xwindow 幾乎完全不了解。很多人用了那么久 Xwindow 都不知道根窗口是什么東
西,不知道其實按鈕也是窗口,不知道窗口管理器和其它程序有什么關系,大家都以
為窗口上面的按鈕是程序自己放上去的,不知道窗口的“class name”,“resource
name”是什么東西。他們也不知道 .Xdefaults 是用來干什么的。特別是他們很多人
都不知道 Xwindow 的字體是如何命名的,什么是 fontset,有了一個新的字體也不
知道怎么安裝。
他們被遮在 Linux 之上的一層一層的包裝迷惑了,他們等待有圖形界面的工具來幫
助完成一切事情,他們認為 Linux 跟 Windows 一樣,只是麻煩一點。他們知道 Linux
內核很好,但是他們感覺不到 Linux 和 Xwindow 在操作層面的天生的先進性,隨后
不久就把 Linux 完全刪除掉了。你發(fā)現(xiàn)沒有,要用戶理解 UNIX 和 Xwindow 的操作
層面的先進性,才是留住用戶的最好辦法。如果用戶體會不到操作時的方便和高效,
內核再好他們也不會理會。
但是用摹仿 Windows 的作法來吸引用戶,永遠會失敗的。因為 Linux 如果摹仿 Windows
那一套低效率的方式,那么 Linux 的這套“低效率方式”永遠比不上 Windows 的那
一套“低效率方式”。那么用戶就會說:“這個 Linux,沒有一樣比的上 Windows。”
Linux 天生就是繼承了 UNIX 的高效的工作方式,為什么我們要把它掩蓋起來?我們?yōu)?br>
什么只告訴用戶 KDE 的菜單怎么用?我們?yōu)槭裁床荒芟裨缙诘?Xwindow 書籍那樣第一
節(jié)就告訴用戶什么是 X server, 什么是 X client,什么是 Window Manager, 什么是
根窗口。第二章就告訴用戶窗口有哪些屬性,什么是 classname, resource name, hint,
怎樣使用 .Xdefaults, xrdb ……
在這里我又不得不說一下那些 Linux 的發(fā)行公司和寫書的人,他們把 Linux 和 Xwindow
包裝起來,卻沒有從基本上告訴用戶 Xwindow 的工作原理。很多書籍講授的層次就是在
Gnome, KDE 的菜單操作的層次,靠大量抓圖來占篇幅,“繁榮”Linux 書籍市場。
現(xiàn)在很多人已經把能夠利用別人的庫寫出一個好看的程序作為自己編程水平的象征。在
這個“圖形化”,“可視化” 的年代,你如果還在用 troff, LaTeX 寫文檔,你還在用
VIM 自己編輯 HTML,用 Mutt 處理郵件,你還在用文本模式的 gdb 調試程序,你還在用
Xlib 寫程序, 你還在用 tin 上 USENET,你還在自己寫 Makefile,寫機器代碼,你還在
玩 Clossal Cave 這樣的字符模式冒險游戲,那你就是老古董。
其實這種思想是錯誤的。雖然你是一個堅決的 Linux 支持者,但是你的思想是 Windows
的思想。你認為圖形界面,菜單,按鈕就可以解決一切問題,就可以給你高效方便。你還
是沒能擺脫微軟給你的潛移默化的東西。你其實離不開 Windows 那樣的環(huán)境,你遲早會
刪掉自己的 Linux。
GUI vs. CLI
做一個堅定不移的“兩面派”
大家看到這個標題是不是熱血沸騰?兩派大蝦都可以圍攻我了:
GUI派用戶:“哇!我一看你這小子就是 CLI 的。要不然自己寫什么 Makefile?用什么
Mutt?”
CLI派用戶:“切~ 你還用 X!高手都不用 X。你是 GUI 那邊的。”
可憐的我:“555~~ 你們都不要我~~ GUI 和 CLI 就那么水火不容嗎?”
計算機界這樣的門派之分還很多。很有特點的就是 CLI 和 GUI 了。CLI (Command LIne)
的狂熱份子聲稱永遠不用 X。我上次在實驗室看到一個同學用一個 SecureCRT 登錄到
Sun 機器,然后用一個 vanilla vi 編輯程序,我建議他啟動一個 GVIM 過來顯示在
Exceed 上可以有語法加亮。但是他堅決反對,說:“高手不用X。你想想,要是我在一
個很慢的網(wǎng)絡連接怎么用 X?而且好多服務器沒有裝 X 程序。”
但是我們實驗室的網(wǎng)速可夠快,Windows 機器都有 Exceed 啊,而且 Sun 機器有全套
X 客戶程序包括 GVIM。他說他是 CLI 的堅決擁護者,但是他卻在用 Windows,他后來
打開了好幾個 SecureCRT,每次從文本框輸入地址,用戶名和密碼,從下拉菜單選擇
"SSH2",然后點擊“Connnect”。他還不斷的夸SecureCRT是“網(wǎng)絡管理員投票選出的
最受歡迎的登錄方式”。老天,SecureCRT 本身就是個 GUI 啊,他其實沒有明白
Xwindow 的好處。
你說我是 GUI 的?我雖然很少在 console 下工作。但是我對 bash, VIM 很熟悉,我
可以讓 bash 按照我的鍵綁定方式來工作。我可以在 rxvt 里使用 Mutt 來收發(fā) email。
我的每個桌面上都常常堆放著一打不同大小的 rxvt。我用 VIM 編輯 LaTeX。我自己寫
Makefile 來維護 LaTeX 文檔。我有時用 mpg321 來放 mp3。我上BBS用的我自己寫的
expect 腳本。 好了,CLI 派的朋友可以收我做盟友了
你說我是 CLI 的老古董?我的 FVWM 被我配置為可以“手寫操作”,我只要畫一個
"r"就可以啟動 rxvt,我只要畫一個 "U" 就可以啟動 GVIM,…… 我用 GVIM 語法加
亮模式編輯程序,我用 Mozilla 瀏覽網(wǎng)頁,…… GUI 派的現(xiàn)在好像認我做朋友了
好了。CLI 派的朋友,雖然我很喜歡命令行,但是我有時在屏幕上左右畫一下就可以
執(zhí)行:
Module FvwmConsole -terminal rxvt -geometry 45x5-0+0 -bg gold -fg
midnightblue -fn "-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-*"
你是不是現(xiàn)在又想把我逐出師門?
GUI 派的朋友,雖然我很喜歡窗口。但是我可以在 FvwmConsole 里輸入:
All (rxvt) MoveToDesk
把我所有的 rxvt 移動到我現(xiàn)在工作的桌面。“這家伙,怎么這么快就叛變了!”
其實何必分什么 GUI 和 CLI,UNIX 和 Xwindow 都是工業(yè)標準,它們從設計那天開始
就有非常靈活的用法,各個程序,不管是 GUI 還是命令行的都可以互相協(xié)作。UNIX 和
X 是一家,何必搞的那么偏激,非此即彼?你從我上面的行為可以看出 GUI 和 CLI
的模糊界線嗎?我就是堅定不移的“兩面派”。
UNIX 是簡單的--
“我相信簡單就是最好,如果太復雜,我是不能理解的。” —Seymour Cray
很多第一次用 Linux 的人會驚奇的發(fā)現(xiàn),Linux 的程序居然不用“安裝”就可以運行,
程序拷貝到隨便那個目錄都可以用,而不是一定要占用你第一個分區(qū)的空間。程序的
設置只是一些簡簡單單的文本文件。你根本不需要什么“注冊表修改器” 就可以改變
系統(tǒng)的設置。這就叫做簡單,但是簡單就是美。雖然這只是 UNIX 簡單性的一個膚淺
的認識,你已經體會到了某些東西。
但是簡單并不意味著功能弱,并不意味著落后。相反,簡單意味著強大,意味著生命力。
我不會再繼續(xù)闡述我理解到的“UNIX 的簡單”,因為這個需要自己去體會。
UNIX 是永恒的
有人說:“Plan9 會取代 UNIX,Mach 會取代 Linux 內核。”
但是你如果是一個深入體會了 UNIX 的人,你就會知道:UNIX 的思想是永恒的,不管
時過境遷,Plan9 是否代替 UNIX,UNIX 的靈魂都會在 Plan9 身上現(xiàn)形!
我為同一個設備寫過 Linux 內核和 Windows VxD 驅動程序。寫 Linux 驅動程序時,
我對 UNIX 設計的完美的一致性,遠見性所折服。UNIX 用同樣界面的 read(), write()
系統(tǒng)調用就可以對不同的對象:普通文件,設備文件,管道,管道文件,socket,……
進行統(tǒng)一的讀寫操作。我跟本不需要寫一個測試用的應用程序就可以對我的設備驅動進
行測試,因為 cat, cp, dd, 它們也使用了同樣的 read(), write(),設備和普通文件
在應用程序眼里沒有區(qū)別。在那個還沒有 Smalltalk, 沒有 C++ 的年代,UNIX 的設計
者已經使用了所謂的 “面向對象方法”。對,C 語言也可以實現(xiàn)面向對象。
UNIX 的系統(tǒng)調用幾十年都沒有很大變化,這非但不是頑固,不進步的象征,反而是
UNIX 的遠見卓識的體現(xiàn)!這就跟 TeX 程序幾十年都不變的情況差不多。這些才是真正
的永恒的 master piece! 你應該改變所有軟件都必需從 0.1, 1.0, 1.1, 1.2, 2.0,
..., 3.0, 3.1, 95, 98, 2000, XP, ... 不斷升級的想法。
Windows 就不同了,它在最開頭只是一個 DOS 之上的圖形包裝而已。后來為了兼容以
前的糟糕設計,不得不加上很多累贅。我寫 VxD 驅動程序的時候就深有體會,Windows
95 程序對設備的操作只有用 DeviceIoControl,我不得不寫了兩個應用程序來對設備
驅動進行測試。Windows 內核的不一致性和隱密性使我非常惱火。不過 Windows WDM
驅動程序現(xiàn)在也有了 ReadFile, WriteFile,…… 那說明什么?那說明 Windows 在向
UNIX 學習,或者有可能是某個 UNIX 設計人員在微軟打了幾天臨工,順手加了幾個
UNIX 的東西進去。這樣做是沒有用的,Windows 從一開始就是非常糟糕的設計,它的
歷史的包袱太沉重了,縫縫補補有什么用?它只能永遠的被 UNIX 甩在身后!
UNIX 是強大的
讓聰明人干任何他們想干的事情。
UNIX 的一個特點就是非常高的靈活性,Xwindow 也具有這種靈活性。這種靈活性體現(xiàn)
在哪里呢?
UNIX 的程序一般都有很多參數(shù),不管你現(xiàn)在用的著用不著,總有人需要某些參數(shù)。它
們的行為很多都可以用配置文件來改變。比如 GNU bash, 通常缺省的命令行輸入方式
是 Emacs 方式,但是只要我編輯一個 .inputrc 文件,就可以把它變成 vi 的輸入方
式,而且我還可以自己綁定鍵序列到某些操作。我可以用 shopt 來設置它的很多特點,
比如是否進行通配符擴展,是否可以把一個變量當作一個目錄來cd,是否可以自動糾
正某些明顯的目錄名打字錯誤 ……
UNIX 程序設計的思想是提供給用戶“機制”,而不限制用戶制定“政策”。這是一個
重要的尊重用戶的作法。
我們再來看看 Xwindow。Xwindow 是一個出色的設計,它把顯示服務器和客戶程序分開。
一個顯示上既可以顯示本機上的程序,也可以顯示別的機器上的 X 程序,而它們都遵
守你的窗口管理器的統(tǒng)一指揮,它們之間可以方便的傳送剪貼版數(shù)據(jù),各種事件 ……
比如有時我的 XFree86 上會出現(xiàn)四個不同機器上的 XTerm,兩個不同機器上的 GVIM,
…… 它們統(tǒng)一受本機上的 FVWM 指揮。
Xwindow 程序都具有很多很多命令行參數(shù)和 resource 參數(shù)。你可以隨意的在命令行或
者 .Xdefaults 文件設置所有的顏色,字體,尺寸…… 而且如果你用 xrdb 把 .Xdefaults
導入到根窗口,那么其它機器上沒有經過配置的同樣的程序,顯示到你的機器上的時候
也會遵守同樣的外觀規(guī)定。
Xwindow 的窗口具有 Property, 也就是一些可以自己定義的共享數(shù)據(jù)(原子)。正是因
為這些 Property 的存在,使得 Xwindow 具有無比強大的生命力。X 的窗口管理器和
其它客戶程序之間并沒有統(tǒng)一的協(xié)議,但是后來出現(xiàn)了 ICCCM(客戶程序間通信規(guī)范),
這個規(guī)范就是通過 property 定義的。現(xiàn)在又有人定義了一套“擴展的窗口協(xié)議(EWM
Hints)”,使得 Xwindow 可以具有某些 Windows 的特征,比如一個工具條程序可以告
訴窗口管理器:“這個屏幕下面被我占據(jù)了24個像素的空間,你最大化程序的時候不要
越過這個界線。”
一個強大的窗口管理程序比如 FVWM,它收到這樣的提示時,可以答應工具條程序的這
個要求,也可以不答應。一切選擇的權力在于誰?當然是用戶了!
你想想,是不是有些 Windows 程序常常彈出一個窗口要你選擇 "Yes or No"?你不點
擊它它就不下去。你覺不覺得你的程序在侵犯你的尊嚴?你是一個人,一個智慧的生物,
怎能受到一個程序如此的待遇?
還有就是很多 Windows 程序把人當成傻瓜,而它是“智能程序”。比如,有一個程序就
是喜歡把你的每句話第一個字母都變成大寫,我不說它是誰了,你遇到的時候就知道了。
如果連“一句話開頭一個字母要大寫”這么明顯的問題都需要程序幫你糾正的話,人腦
還用來干什么?況且如果你故意想要不大寫的話,那就更麻煩了,我楞是沒有從它那一
大堆菜單里找到怎么關閉這個愚蠢的選項。
只有符號才能完全操縱計算機。
我們來說說很多初學 Linux 的用戶。雖然他們在用 Linux,但是他們打心眼兒里是覺得
Windows 的工作方式好,他們希望 Linux 有一天能“像Windows那樣”。你說:“我鼠
標一點,我菜單一拉,…… 就可以完成我的操作。” 但是我要告訴你:“Linux 從來
沒有摹仿 Windows,將來也不會。Linux 從誕生之日起,它的工作方式就比 Windows
的先進。
Linux 屬于能勇敢面對符號的人。只有符號才能完全操縱計算機。”
看看優(yōu)秀的 UNIX 程序,XFree86, FVWM, VIM, Emacs, proftpd, Mutt, wget, tin, ...
沒有一個不是用配置文件來設置選項的。為什么這些程序沒有方便的菜單可以用來配置?
難道它們的設計者就那么低能,連個圖形配置界面也寫不出來?
當然不是。因為圖形界面配置方式的能力是極其有限的,而配置文件和程序語言的表達
能力卻是無限的。用圖形界面配置這些程序的話,如果你想達到配置文件的效果,你需
要成百上千的菜單,checkbox, radio button, ... 到時候你根本沒辦法找到你需要修
改的地方了!而各個程序的配置文件的語法都有很多相似之處,一般就是一些命令,設
置一些變量,參數(shù),…… 一旦用會了一個,其它的也就容易理解了。如果你用慣了 awk,
sed, Perl,你會覺得那才是真正的自動化啊。
鼠標雖然是很好的工具,但是它的表達能力是有限的。你不可能光用鼠標就讓電腦完全
明白你的意思,它畢竟只有3個按鈕。看看我的MetaPost頁你就能體會到鼠標的這一弱
點。所以我們雖然很喜歡鼠標,但是卻不能完全依賴它。
各個小程序的完美配合
這就是UNIX最重要的特點了,它就是UNIX設計的思想。讓每個程序只具有一項專門的能
力,然后讓它們合作。Xwindow也繼承了這種好傳統(tǒng)。這恐怕就是Windows和其它操作系
統(tǒng)望塵末及的地方了。UNIX 程序設計之統(tǒng)一,配合之完美,真使我難以置信!shell,
grep, find, awk, sed, make, Perl, Emacs, vi, tin, Mutt, ... 它們是那么的具有
一致性!你一旦學會了 sed 的正則表達式,其它程序基本上都能用了。你一旦學會了
vi 和 VIM, 你會發(fā)現(xiàn)它的操作是那么的有規(guī)律性,似乎vi的設計者在幾十年前就已經
設計好了 VIM 在今天的完美而統(tǒng)一的操作方式!而且vi的操作還體現(xiàn)在 Mutt, tin 等
很多程序中。你甚至可以把 bash 設置為 vi 的輸入方式來輸入命令行,我就是這么做
的。一個程序可以調用另外一個程序來得到數(shù)據(jù),可以把數(shù)據(jù)交給它處理后返回來,可
以在自己的窗口里“嵌入”另外一個程序。
在 Windows 和其它非 UNIX 操作系統(tǒng)中,這種合作是非常困難的。我曾經在Windows
下使用 Perl來進行一些自動工作。但是 Windows 的文件操作,管道是如此的不穩(wěn)定,
程序之間基本不能合作。你別想在 Visual Studio 窗口里面嵌入 UltraEdit 編輯器,
你別想用一個 expect 腳本來控制 telnet 到水木清華BBS。
Windows 的程序都是大而全,大而雜,所有的電子郵件程序都需要自己提供編輯器,自
己發(fā)送和收取郵件,自己顯示郵件的附件。每一個BBS程序都提供自己的Virtual Terminal,
自己的通訊代碼。每一個 IDE 都自己提供編輯器,編譯器,匯編器,調試器。人們?yōu)?br>
了使用一種新的程序,需要適應所有這些它提供的界面,而不能使用自己喜歡的編輯器
的鍵綁定,菜單組織…… 不能 DIY!
你要知道,最高級的電腦是定做的,自己想要什么什么CPU,什么主板,多少內存,什
么硬盤,鍵盤,鼠標,顯示器都是自己選擇的。最高級的滑板,自己想要什么牌子的版
面,什么牌子的沙,什么橋,什么輪子,什么軸承,也都是自己選的。最高級的 古球
拍,木板,膠皮,海綿,膠水都是可以自己選擇…… 而用 Windows 程序,你得到的是
大雜燴,就像你去買“品牌機”,只有那么幾種配置,而且附帶很多你不需要的軟件和
服務;就像你去買組裝好的滑板,你想要大一點的輪子和窄一點的板子,但是你沒有這
種選擇余地!Windows 程序就相當于最廉價,最次的滑板。但是它卻會花你更多的錢,
因為一旦一個部件壞了,或者你不喜歡了,你不能另外找一個好的換掉它,你必需重新
買全套配件!
而 UNIX 和 Xwindow 就是高檔的“組裝貨”。比如我用 Mutt 的時候,我可以用 VIM
也可以用 pico 來編輯郵件,我可以用 ImageMagick 也可以用 xv 來顯示附件里的圖
片,我可以用 lynx 把 HTML 附件轉成文本嵌入窗口中,我也可以把 HTML 附件交給
Mozilla 圖形顯示。我可以讓 GnuPG 幫我把郵件進行數(shù)字簽名和加密,我也可以用其
它 PGP 程序。
我想讓 Postfix 而不是 sendmail 幫我發(fā)出郵件,我想讓 fetchmail 幫我收郵件,
轉發(fā)給 postfix,然后被我自己寫的Perl過濾器處理…… 這一切我都可以辦到!我可
以選擇我最喜歡的專門的程序來完成專門的工作,然后把它們結合在一起,我也可以
分別得到它們的好處。
學 UNIX 絕對不是浪費時間
有人告訴我:“你看我用 Windows 什么都不用學。而用 Linux,光是安裝就花了我一
個星期!”
首先,我要告訴你的是,你裝 Linux 花了一個星期,不是因為 Linux 不好裝,而是
因為你已經習慣了 Windows,對 Linux 最初難以理解而已。你想一想你最初安裝Windows
的時候呢?你花了多少時間搞明白什么是硬盤分區(qū)?什么是盤符?什么是目錄?你認為
Windows 就是那么容易可以學會的嗎?雖然你覺得沒花時間學,但是你以前在用別人的
機器的時候已經耳濡目染,自然就了解了。而且由于你想要 Linux 和 Windows 并存于
硬盤上,又增加了安裝難度。而且你肯定沒有得到有經驗的 Linux 用戶的幫助,否則
他們會在20分種之內幫你搞定。一個星期也太夸張了.
如果一開始用的就是Linux就沒有這個問題。你想想如果你沒有用過 windows,你肯定
會很習慣 /etc, /usr, /usr/local ,... 而不是 C:, D:, E:, ... 是不是?如果你只
用過Linux,你第一次用 windows 時恐怕也會問:“/bin 目錄哪里去了?。?#8221;
最重要的是,你用慣了的UNIX工具,它們可以伴隨你一生,而不會那么容易變化或消失。
你可以永遠不用再換另外的工具了。除非那個工具比你這個好的太多,而且可以完全模
擬你現(xiàn)在的工具。
我們實驗室一個60多歲的老師,用vi, cc, make, ...都幾十年了,他以前的經驗絕對
沒有白費,而且教會了我們一批又一批的學生。vi 伴隨著 UNIX 的最初發(fā)行而誕生,
直到今天還是世界上頭兩號編輯器之一!有些人的 FVWM 配置文件已經用了 10 多年,
現(xiàn)在完全不經修改還可以用。
看看 Windows 的工具,你從 Borland C++ 換到 VC, 就必需適應新的環(huán)境:菜單不同
了,顏色不同了,按鈕不同了,幫助信息不同了,熱鍵不同了,編譯器參數(shù),調試器功
能也不同了,…… 那個時候恐怕花要花你很多時間去適應。當你剛剛適應了 VC, 你又
要換成VJ, PowerBuilder, C++Builder, ...
很多windows程序員都是這樣,開頭在dos下用Turbo C, 然后是 Borland C, VC, C++
Builder, ......不斷追趕微軟的潮流。而且微軟的SDK, MFC, .NET …… 什么都在不
斷變化,不斷出問題,又不斷的在修改…… Windows 程序員不得不買又厚又重的 Microsoft
Press 的書籍,看了才一個月,又過時了。今天你才學會了寫 VxD,明天你就必須用
WDM 了。你不得不注冊 MSDN 才能趕上 Microsoft 的步伐。很多人說:“計算機是貴
族的專業(yè)。” 這就是微軟一手造成的。
這些東西才是沒完沒了的浪費大家的時間和金錢的。這是是浪費生命!我們?yōu)槭裁床?br>
使用從誕生就那么一致和完美的 UNIX?你需要理解先進工具的設計理念。UNIX 的工
具就像我們用的汽車,它的離合器,油門,剎車,方向盤,后視鏡,永遠都在同樣的
位置。用慣了的話,你對你的汽車的每一個部件都會了如指掌,甚至你自己都可以修
車了。這難道不好嗎?
有人說:“你說我們需要了解 UNIX,難道你要開車還必須了解汽車的結構嗎?” 你
去問問開車的司機,哪一個不了解汽車的結構的,那他的駕照就是混來的。你難道想
要傻瓜型的“微軟牌汽車”嗎?我們來看看:
你買的微軟牌汽車最開頭只有一個座位,每加一個座位你得向汽車公司付錢。車上的
防撞氣囊不時會冒出來,說是為了你的安全。每開100英里要大修一次,每過一年要換
一次引擎。附帶的,你還必須換用由微軟汽車公司指定的石油公司提供的新型號的機
油。你的車出了問題,但是法律規(guī)定,你不準私自拆開你的汽車來修理,你必需到微
軟汽車公司指定的維修點去,需要付相當多的錢才能修好一個小毛病。
最可氣的是,你每換一個型號的微軟牌汽車,它的剎車和離合器都在不同的位置,你
需要重新去考駕駛執(zhí)照。如果這輛汽車在途中剎車失靈,你受了重傷,你也不能狀告
微軟汽車公司,因為你買來汽車之后必須簽一個合同,說“由于微軟牌汽車對你和家
人造成的一切死傷,微軟概不負責。”
怎樣完全用 GNU/Linux 工作
說了這么多 Windows 的不好。我還沒有告訴你我怎么用 Linux 處理有些必要的事情。
半年以前我由于中文老是配置不好,一直是雙系統(tǒng),不時需要重起到 Win2k 來處理
漢字。后來我找到了 miniChinput, XSIM 和 SCIM 輸入法。這下可以處理漢字了。
而且 VIM 和Emacs 對漢字支持越來越好。我的大部分文本是用 VIM 編輯的,包括程
序,信件,網(wǎng)頁,LaTeX 論文,MetaPost 繪圖語言。
我不用 Word 這樣的程序寫論文,而是用 LaTeX,因為這是世界上效果最好,最方便
的論文工具,是大多數(shù)學術雜志要求的格式。幻燈都是用 ConTeXt 做的,用起來很簡
單,而且效果非常漂亮。你可以看看我的TeX介紹。
至于繪圖,你可以用很多可視化的工具,比如 xfig,dia。但是對于我來說,任何可
視化的工具都不能完成某些任務,我需要一種可以精確描述圖形的語言。我找到了
MetaPost。它簡單又好用,而且效果是世界一流的。我的插圖,如果不是圖像,都是
MetaPost 畫出來的。
我曾經抱怨 mozilla-mail 經常突然消失,損壞我好幾封快要完成的信件。后來我發(fā)
現(xiàn)mozilla 的郵件處理程序確實是不穩(wěn)定的,功能又弱,有經驗的 UNIX 用戶都不用
這樣的程序。Mutt 是一個非常穩(wěn)定可靠的 UNIX 郵件處理程序,而且功能非常強大。
我曾經為 Gnome 和 KDE 的不穩(wěn)定而煩惱。現(xiàn)在我找到了非常強大的 FVWM。KDE,
Gnome也能和 FVWM 一起工作。雖然 Gnome 和 KDE 總體不穩(wěn)定,但是某些部件程序
還不錯,很多 gtk, Qt 的程序也很不錯,它們很多都是可以獨立于這些桌面環(huán)境運
行的。
Linux 有很多強大方便的工作方式是 Windows 沒有的,或者有類似的東西,但是很
差勁或者用起來不方便。比如 ssh 服務,rsync,cvs,expect ……
結論
我寫這么多的目的是什么?我希望喜歡 Linux 的朋友,完全清除微軟和 Windows 灌
輸在你腦子里的謬論,別再相信它們所謂的“新技術”,別再追趕 Windows,因為追
趕Windows = 倒退。馬克思有一個思想很重要,“新生事物并不一定是在最近出現(xiàn)的。”
UNIX,Xwindow, TeX 雖然都比 Windows 先出現(xiàn),但是它們才是先進生產力的代表。
我們要清楚的認識到什么才是真正的現(xiàn)代化,什么才是真正的自動化。
消除學計算機很難的幻覺,勇敢的拿起像 bash, FVWM, TeX, VIM, Emacs, Mutt ……
這樣強大的程序,勇敢的面對符號。不要再埋怨“Linux 為什么不能像 Windows 那樣”,
不要再浪費時間試用這樣那樣的程序,不要再忙著升級。你需要理解 UNIX 的工作方
式,因為那是大多數(shù)科學家的工作方式。Linux 可以成為你的好朋友,你需要認識它,
了解它,信任它,才能完全的靠它來高效的工作。當然,在游戲機,手機,掌上電腦
里,或者在用電腦來娛樂的時候,用一些“傻瓜軟件”還是不錯的.
我希望小學,中學的計算機老師能夠提高自己的素質,在孩子們的啟蒙教育中充分利
用Linux 神秘的特點,引起孩子們對數(shù)學,對符號的好奇心。誘導他們用計算機來解
決世界上的有趣問題,而不要把教學的范圍局限于計算機的操作和它自身的問題。
附錄: 我用來處理日常事務的 Linux 程序
好了好了。我知道你發(fā)現(xiàn)自己應該轉向 Linux,你很后悔當初為什么中了微軟的邪。但
是不要著急。因為這些東西本來只是工具,它們是用來完成你的主要任務的輔助而已。
你以前選錯了工具,這不要緊。你還是擁有你自己原來的專業(yè)技能,那才是最重要的。
工具的東西只有慢慢適應轉換,不能一蹴而就,否則你會感到非常沒意思,甚至放棄。
如果你只想做一個像我這樣的普通用戶,主要目的是用 Linux 來完成自己的任務,那
就可以不用系統(tǒng)管理員或者網(wǎng)絡管理員的標準來要求自己,因為當一個系統(tǒng)和網(wǎng)絡管理
員確實很辛苦。這里我對實驗室的網(wǎng)管同學鞠一躬,謝謝你的指點和幫助. 不用把你的
機器當成網(wǎng)絡服務器,不用開放沒有必要的服務,設置好 ssh, ftp 已經足夠了。這樣
會省去了解很多沒必要了解的東西的時間。不用過度考慮“安全”,因為 Linux 缺省
已經很安全了。不過你有興趣了解更多那也無妨。
下面給出一些推薦使用的可以處理一般事情的程序。至于你的專業(yè)上要用到的科學和工
程軟件比如 Matlab, Mathematica, Maple, HSpice, Design Compiler, …… 還有其
它物理上的,化學上的,生物上的 …… 都必然有 Linux 和 UNIX 的版本。當然他們
很多不是免費的,不要總是覺得什么都應該免費,自由不等于免費。它們是經過很多人
辛勤勞動的產物,是可靠的程序,它們物有所值。
下面列出我常用的一些 Linux 程序。一個列表里可能有很多,那是為了方便你來選擇,
我列出了比較信得過的。但其實很多只有第一個是我真正在用的,我不喜歡試用程序。
我不是一個合格的網(wǎng)絡管理員,我的服務器都只設置了我自己需要的功能,那樣可以省
去我很多麻煩 tongue
Shell: bash。它結合了 csh 和 ksh 的優(yōu)點,并且有 readline 功能,你可以隨意綁
定自己的鍵盤。
編輯器: VIM, Emacs。
程序開發(fā): GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ...
論文,幻燈工具:LaTeX, ConTeXt
繪圖工具:MetaPost。這個語言太強了,以至于我只用它了。你不熟悉的話可以用xfig,
dia 來畫一些流程圖之類的圖片。
圖像處理:ImageMagick。其中的 import 程序可以屏幕抓圖,convert 程序可以轉換
圖像格式,display 可以顯示圖片和簡單編輯(縮放,換質量,轉格式,簡單繪圖,簡
單慮鏡)。通常我就這么點需要。如果你要更強大的圖像工具可以用 Gimp, 它幾乎和
Photoshop差不多。
自動管理工具:make。我可以用make來自動編譯程序,自動編譯文檔,自動更新插圖……
全自動,而且不會重復勞動。
數(shù)值計算程序:SciLab。這個程序基本上可以代替 Matlab。
代數(shù)計算程序:MAXIMA。這個程序基于世界上最老的計算機代數(shù)系統(tǒng)之一: 由美國能
源部(DOE)發(fā)行的 MIT Macsyma 系統(tǒng)。它是用 Common Lisp 實現(xiàn)的。很多現(xiàn)在的符號
計算程序比如 Maple 都從 MAXIMA 身上學到很多東西。它現(xiàn)在經過 DOE 批準以GPL發(fā)
行,永遠是一個自由軟件。
加密程序:GnuPG。我的 PGP 密鑰就是它搞出來的。
打包,壓縮程序。什么都有: tar, gzip, bzip2, zip, rar, ...
虛擬光驅程序。Linux 不需要虛擬光驅程序,直接 mount 就行了。
ftp 服務器:proftpd, vsftpd。proftpd 功能很強,但是我只用了最簡單的一種設置。
WWW 服務器:apache。(我一般沒有開)
ftp 客戶程序:lftp,ncftp。它們都是文本方式操作的,但是比起圖形界面的方便的
多。比如 lftp 幾乎具有 bash 的所有方便功能,Tab 補全,bookmark, queue, 后臺
下載,鏡像…… Linux 也有圖形界面的 ftp 客戶程序,但是大多不穩(wěn)定,有很多問
題。這就是很多人抱怨 Linux 不如 Windows 的一個小原因。還有很多人用 Wine 模
擬 Windows 的leapftp,其實 lftp 比 leapftp 好很多,你需要的只是適應一下。
自動下載工具:wget。它非常穩(wěn)定,有一次我下載一個程序,用 IE 和 Mozilla 下載
回來的文件都是壞的,最后還是 wget 可靠的傳輸了數(shù)據(jù)。用它甚至可以鏡像整個網(wǎng)
站,比起WebZip 這樣的 Windows 程序強多了,而且不會因為你不付錢就在下載回來
的網(wǎng)頁里強制插入廣告。
虛擬終端:rxvt, xterm, gnome-terminal, mlterm, ...
X server: XFree86
窗口管理器:FVWM。編譯加入了 libstroke。
中文輸入:XSIM。被我修改過以適應 FVWM 的需要。另外推薦你還可以用 SCIM。
email 處理:Mutt + Postfix + fetchmail
看 PDF, PS, DJVU 文件:Acrobat Reader, xpdf, GhostScript, gv, djvu工具包和
netscape 插件。
看CAJ文檔。我從來不看CAJ之類的文檔,如果找不到PDF或PS,直接去圖書館借最好。
看網(wǎng)頁:Mozilla, Phoenix, lynx。Mozilla-Xft 的顯示效果比IE 好很多。
英漢字典:IBM智能詞典,星際譯王。
編輯網(wǎng)頁:我用VIM 直接寫 HTML。你如果想要圖形方式的可以用其它的比如
screem, BlueFish。
登錄其它 UNIX, Linux 機器:openSSH, telnet。 我喜歡用 openSSH 把其它機器的
X 程序通過 ssh 加密的隧道傳到我機器上顯示。
登錄 Windows2000 server 的 display service: rdesktop,...我有一天試了一下,
不錯。后來就沒有用過了。
同步程序:rsync。我用 rsync 通過 ssh 來跟某些機器同步數(shù)據(jù),或者做自己機器上
不同目錄間的同步。
上BBS:rxvt(或任何一種終端) + telnet + chatbot(helloooo 機器人的程序)
QQ, ICQ: 我沒有 QQ 或 ICQ。不過你可以用 Gaim, 它同時支持 QQ, ICQ 和很多其它
的即時通信方式。ICQ 用戶也可以用 Licq。
放錄像:MPlayer, RealPlayer。MPlayer 太好了,直接就可以放 VCD, DVD, divx,
wma, wmv ... 用 Windows 的同學都很羨慕我,說 Windows 要放這個需要大堆插件。
rm 最好還是用 realplayer 放,它也是免費的。
放音樂: xmms(mp3,ogg都可以), mpg321(放mp3), ogg123(放ogg)。mpg321 不如xmms
管理音樂文件那么方便,但是有時我還是用 mpg321 放 mp3 作為背景音樂,因為懶得
開一個xmms窗口 smile
游戲:我覺得 KDE 的那個 ksokoban(推箱子),很好玩 smile
看 Word 文檔。請 Word 用戶把文檔全部轉為 PDF 或 PS 再給我,文檔里沒有特殊的
格式干脆就用文本吧,何必那么麻煩。以前很奇怪的是,通知里本來沒有什么特殊的
格式居然還要發(fā)doc附件的email?,F(xiàn)在好了,我們系發(fā)通知都用文本,PDF,甚至圖片
了 tongue
其它程序:還有很多我需要用而你不一定用得著的。比如,Doctor Scheme,
Scheme48, Scsh, kawa...這些程序只有 Doctor Scheme 有Windows版本。還有很多幕后工作但是你一般不察覺的:xinetd, telnetd, sshd, crond, atd, lpd, ... 他們
都比 Windows 的對應者強的多,或者根本沒有對應者。
===============================================================================
退學申請
清華夢的粉碎—寫給清華大學的退學申請 2005.9.22
清華夢的誕生
小時候,媽媽給我一個夢。她指著一個大哥哥的照片對我說,這是爸爸的學生,他考
上了清華大學,他是我們中學的驕傲。長大后,你也要進入清華大學讀書,為我們家
爭光。我不知道清華是什么樣子,但是我知道愛迪生和牛頓的故事。清華,大概就是
可以把我造就成他們這種人的地方吧。我幼小的腦海里就想象出我能在清華做的事情
……我的臉上浮現(xiàn)出笑容。我說我要實現(xiàn)這個“清華夢”。這就是清華夢的誕生。
小小科學家
我相信每個人在小時候都跟我差不多,對這個世界充滿了好奇。
魯迅有他的百草園,我也有我自己的"實驗田"。如果說小時候的魯迅是一個藝術家,
那么小時候的我就是一個科學家。這么說可能有人要說我口氣太大,張口閉口就是這
家那家。然而在我的字典里,"藝術家"和"科學家"并不是什么了不起的人,它們只是
貼在人內心的一個標簽。如果一個小孩專注于內心對世界的感覺,那么他就是一個藝
術家。而我不是。我的大部分興趣是在了解世界是怎樣運轉,甚至不惜代價。也許大
部分男孩子都是這樣。
我小時候住在父母執(zhí)教的中學里。兩間平房,門口有一小塊地,媽媽在里面種了一些
菜。我們一家三口雖然窮,但是過著寧靜舒適的生活。我們在這個地方一直住到上初
中的時候。這些房屋記錄著一個年幼的科學家的探索和實驗,直到它們被夷為平地。
媽媽拒絕讓我養(yǎng)貓狗,她說凡是會拉屎的都不養(yǎng)---除了我。所以我小時候就喜歡與
螞蟻作伴。我總是試圖用各種各樣的辦法去了解螞蟻的生活習性。我可以一整天的觀
察我家屋檐下的螞蟻來來去去。看見他們用觸須碰一碰,然后各自分頭走開,我就會
想它們到底說了什么。我在想,能不能用一種方法解開螞蟻語言的密碼。我從書中得
知螞蟻洞里有蟻后,她有很大的肚子。為了一睹芳容,我開始試圖水漫金山,把水往
螞蟻洞里灌。我有時一個下午就干這種事情,卻沒有一次成功看到蟻后。后來才知道
螞蟻是如此精明的下水道工程師,水大部分都滲到地底下去了??墒俏也桓市模议_
始試用別的辦法。比如在洞口放一塊糖??墒窍伜蠹茏犹?,終究不肯出來,讓別人
幫她送飯進去。
有人說,這個世界最后不是毀在瘋子手上,就是毀在科學家手上。世界上如果只有科
學家是很可怕的,比如他們會發(fā)明高效的殺人武器。我發(fā)現(xiàn)疏松的棉絮可以迅速的燃
燒,就想出一種慘絕蟻寰的大屠殺實驗。我先把糖水滴在地上,等螞蟻把那個地方圍
個水泄不通的時候,鋪上棉花,點火……現(xiàn)在想起那些勤勞的小黑頭都變成灰燼,我
仍然心驚肉跳。他們的靈魂會來找我報復嗎?后來這個實驗有一個升級的版本用的是
浸泡過一種化學藥品溶液的紙,文火燃燒,由于燃燒速度慢,殺傷力不大,這個實驗
可以測試螞蟻的逃跑路線。我還用活螞蟻進行過心理實驗。首先用破襪子摩擦塑料尺
產生靜電,然后放在一只正在行走的螞蟻身后不遠處。螞蟻走不動了,我就開始推測
它在想什么,它感覺到什么。它可能會覺得有外星人?但是由于尺子拿開以后,它若
無其事繼續(xù)走,我猜它只是有點納悶,而不驚慌。但是反反復復幾次之后,它明顯有
罷工的意思,似乎忘了自己要去干什么。后來我又發(fā)現(xiàn)螞蟻被吸到塑料尺上之后會由
于帶上相同的電荷而被"發(fā)射"出去,就像人間大炮一樣。注:"人間大炮"是日本電視
劇《恐龍?zhí)丶笨巳枴防锏囊环N可以把人當作炮彈發(fā)射的威力很大的電磁裝置。
一點微小的發(fā)現(xiàn),就可以引發(fā)大量的探索和實驗。這就是我在那個年代的特點。雖然
媽媽也逼著我練習毛筆書法,繪畫,還多次獲獎,但我不喜歡這些東西。我似乎生下
來就是科學家,不是搞藝術的,不過也許只是媽媽的強迫讓我反感了藝術而已。物理
是我最喜歡的,因為它讓我了解到世界的奧秘。我一般開學前幾天就會把物理書上的
實驗都挑出來,費盡辛苦找到材料實踐一番,心里美滋滋的。上學真是快樂!
失之交臂
上了高中,由于課業(yè)的壓力,我的生活逐漸改變了。為了考上清華大學,我努力的學
習。拋下我的毛筆書法,拋下我用來做實驗的螞蟻,電池和線圈,拋下除了考試科目
的一切。在老師眼里我是一個聽話的好學生,在媽媽眼里我是一個聽話的好孩子。每
天早上按時起床,吃一大碗媽媽做的面(為了補充一上午學習需要的體力),然后沖
進教室,按照預設的程序開始讀書,做練習題。似乎一切都有條不紊,順利進行。可
是……
忽然有一天我發(fā)現(xiàn),我的一切活動都是在紙上進行的,看書,做習題。試卷和復習書
讓我變得變得麻木。我想這樣下去我就不再像愛迪生和牛頓了。于是我開始調皮起來
。我不但要做考試的題目,還要做更難的題目。做了物理奧林匹克的題目,接著就想
看大學的物理書,接著就想恢復我小時候的實驗的愛好。老師輔導自習時經常被我纏
住問一些不著邊際的問題,那其實是我在實驗中發(fā)現(xiàn)的問題。終于有一天,在我要求
他跟我合作制造一個磁懸浮陀螺的時候,他顯示出了不耐煩:“王垠,你讓我先回答
別的同學的問題好不好?你的問題對考試沒有好處。” 我呆住了,啟發(fā)我讓我愛上
物理的人,盡然對我說出這樣的話。后來想一想,他也是無奈啊,不過我從此再也不
想問他任何“超綱”的問題。
高二的時候媽媽就拿回一份前一屆的高考題讓我做,我隨手一做就得了一個當時可以
考上清華的成績。我的心里想,清華我來了。明年的這個時候,我就會拿到錄取通知
書了!從此我就不再把高考放在眼里。我開始鉆研越來越難的題目,進行越來越離譜
的實驗。我想,清華里面應該都是我這樣的學生吧,我會有很多志同道合的朋友,不
用再跟這群只會做題的呆子在一起了。
可是我的行為總是受到老師的壓制,他們要把我們變成考試的機器。他們告訴我,沉
下心來做習題,考試才能有把握。媽媽也幫著老師勸導我??矗话嗟哪衬衬尺@次模
擬考試數(shù)學成績比你高,多努力一下吧。我哪里聽得進去,我才不在乎這點分數(shù),我
能解決更難的問題,老師都沒法解決的問題。我開始有了逆反心理,開始早上懶床,
裝病請假不去上課。班主任,校長多次找我談話,說我要沉下心來準備考試云云。但
是我根本就聽不進去,我鄙視高考,覺得他們沒有資格出題來考我。然后我就有了心
理疾病,大概是強迫癥。高考語文的時候我居然懷疑監(jiān)考老師認為自己在作弊,接著
好像真的怕被抓住了一樣,手發(fā)抖,頭冒汗。然后我又想要是考不好,以前的優(yōu)秀會
不會也被人懷疑?他們會不會以為我以前的成績全都是作弊得來的?手就抖得更厲害
了。這時候,監(jiān)考老師可能發(fā)現(xiàn)了我的情況,真的走了過來,站在我身后。害得我好
幾分鐘不敢寫一個字,因為手已經完全不聽使喚。不過他還是走開了,這可怕的高考
終于結束了。
我們是考試前填的志愿,我根本不考慮其他學校就只填了清華。后來媽媽研究了一下
,幫我添了一個天津大學在第二志愿。以下的志愿全部空白。大家覺得我真夠大膽,
可是我的心理狀態(tài)讓我發(fā)揮完全失常,比清華的最低分數(shù)線還差兩分。特別是語文,
才96分。天津大學第一志愿收滿不要我。昔日的好學生,居然到了落榜的下場。我真
的那么好嗎?我問自己。我太驕傲,才落到如此地步吧。我開始懷疑自己是否應該那
樣瞧不起高考??粗职值某蠲伎嗄?,媽媽的嘮嘮叨叨,真是生不如死。復讀嗎?那
會是噩夢的繼續(xù)。我不能再在這個學校待下去。再面對題海,我的心理疾病會讓我自
殺的。碰巧四川大學來招收高分落榜的學生,還給了我隨便選擇專業(yè)的機會。媽媽說
,計算機現(xiàn)在很火熱,出來好找工作。我雖然對工作不感興趣,但是我比較喜歡寫程
序,于是就進了川大計算機系。
兩度退學失敗
不能不說進川大是個沒有選擇中的好選擇。大學生活自由一些,我至少不會走上自殺
的道路??墒俏业拿∪匀辉诶^續(xù),我永遠不滿足學校里能學到的那么點東西。老師
基本是照本宣科,我逐漸不再滿足這種知識灌輸式的教育。我覺得完全沒必要上這個
大學。
川大的環(huán)境我實在無法忍受。軍訓的時候受夠了同學和教官的委屈,我就想退學。我
們的軍訓是在一個戒備森嚴的炮兵基地里,心里的苦向誰說?。∮幸惶煳覀冋诼飞?br>
齊步走的時候,我忽然看到一個女人挽著一個軍官走了過來。那個軍官的老婆怎么長
的這么像我媽媽!要是媽媽來到我身邊該多好!沒想到回到營地,團長(原來是連長
,我們來軍訓他就升一級做團長了)說有人來探訪。我走過去,居然發(fā)現(xiàn)是媽媽!因
為聽說我想退學,她急忙向學校打聽了軍訓的地點,幾經周折跑過來,是那個軍官帶
著她混進來的。我想我媽媽要是轉行當間諜一定是個好料子。她說已經幫我辦了退學
,學校同意了,回去好好復習,準備考上清華…… “好好復習,好好復習”……我
的腦海里又浮現(xiàn)出高三的情景,這次我要跟一群更沒用的復讀的人在一起。腦子一陣
疼痛之后,我說:“媽媽,我不想退學了。”
可是軍訓回到學校,發(fā)現(xiàn)宿舍如此差勁,我又想退學。媽媽又來幫我辦理手續(xù),可是
結果我還是由于懦弱反悔了。害得學校辦事的老師都罵我:“你這個人簡直神經?。?br>
” 對啊,我確實是有病,不過我的是精神病,不是神經病。我恨我的高中,我恨我
的大學,我恨高考,我恨中國的教育!是你們讓我生病的??墒菋寢?,她為了我已經
費盡了辛苦。我不能再這樣周折下去。我自己在學校里好好努力,準備考上清華的研
究生吧。
學校住宿環(huán)境很差勁,又經過好多麻煩事,我終于決定在校外去租房子住。后來我開
始玩滑板,它讓我變得勇敢。我心里逐漸平靜下來,可以用心看書了。大二以后,我
的學習生活才逐漸進入正常,自信開始恢復。
夢的復蘇
記得川大教Pascal語言的老師第一堂課就對我們說:“我們學校就是落后啊。外面公
司里都用C, C++了,我們還在教Pascal。你們以后要出去工作恐怕還是得學學VC什么
的。” 于是有的同學開始抱起一本本像“XXX圣經”之類的書開始學習,上數(shù)學課也
在看這些東西。我當時自愧不如啊。自己就是小學的時候玩過一下學習機,可以說沒
有任何計算機基礎。輔導員也經??渌麄儙讉€動手能力強,以后公司就需要這樣的人
。他們出口就是Bill Gates, 世界首富云云。軍訓的時候聽著他們說什么DOS, 溫95
,我就只有張著嘴崇拜的份了。才想起我高中計算機競賽的時候一道有關DOS命令的
題沒有做出來,現(xiàn)在聽他們說才知道原來DOS是個“操作系統(tǒng)"。那操作系統(tǒng)又是什么
,他們說每個電腦上都必須有一個操作系統(tǒng)……我真是愧不如人 -_-!
正在我決定鼓起勇氣后來跟上,準備拿起一本DOS大全從頭啃起的時候,一次偶然的
機會我接觸到了Linux。后來又因為The Art of Computer Programming,接觸到了Knuth
。我才發(fā)現(xiàn),課堂上講的那些東西原來如此低級,有些東西學了就過時,學它干嗎?
我并不比別人落后多少。我一再的思考,什么是計算機科學?是什么讓我們計算機系
的人不同于其他系的。我有時候認為有了答案,但是后來答案又被我自己推翻。在思
想的混亂中,我發(fā)現(xiàn)我逐漸擺脫了旁人的標準。我不再想像別人那樣去考計算機等級
考試,對微軟的認證也不屑一顧。我自己學會了Linux,還會很多種當時別人聽都沒
聽說過的計算機語言。我學會了LaTeX,還因為找出Knuth書里的錯誤得到兩張支票。
上課要不就逃掉,背地里拿著大部頭的“龍書”之類的原版英語書啃。要不就看我打
印出來的GNU的一些資料,完全不聽老師講。期末劃重點的時候也不去,考試卻總能
考個八九十分,總有幾個女生排名在我上面。不過我不在乎這點分數(shù),考試和分數(shù)不
再能評價我。同學們大概都覺得我是一個怪人,后來畢業(yè)了我才聽他們說,他們管我
叫“怪才”。我如此努力的學習著,對別的事情充耳不聞。我只有一個目的,就是畢
業(yè)就離開這個鬼地方,進入清華大學上研究生。雖然大家不理解我在干什么,清華的
老師應該挺在乎我學的東西吧。
可是我沒有想到,在我死啃書本的時候,我的創(chuàng)造力正在離我遠去。在我盲目接受我
認為高深的材料的時候,我失去了自己的創(chuàng)造。我成了比別人稍微好一點的技術工人
,不再跟愛迪生和牛頓是一類人了。我高中的時候拼命想保存的創(chuàng)造力已經在苦讀之
下消失殆盡。我看書的方式變得順序化,總想從頭看到尾。我的高中老師們的目的,
中國教育的目的,終于快達到了。
清華,我來了
大三的暑假,我來到清華想拿一些考研的資料。這是我夢中的地方呀,美麗的校園,
比川大要大上好多倍吧,腳都走痛了才走到招待所。去系辦,一個辦事員態(tài)度很不好
的給我一份資料。哎,學校好,人脾氣就該大啊。忍了吧,要是真能考進來就好了。
后來聽一個老師說清華有一種學生叫“直博”,可以碩博連讀,五年拿到博士學位。
只要面試通過就可以進來學習。我心想這種方式好啊,我平生最討厭的就是考試了。
出高考題的那幫人,他們有什么資格考我!考研資料也是遍地飛。寫了幾本復習材料
就自稱什么“一代名師”,我最看不起這種人了,就會賺錢。我如果可以獲得“直博
”的名額,就可以永遠擺脫他們了。想一想,要是碩士三年,博士三年,就要六年。
現(xiàn)在五年就可以拿到博士學位,還不用考試,真是太好了??墒俏矣钟惺裁促Y格獲得
清華的直博?我在川大從來沒聽說過這種東西。
于是我就開始打電話聯(lián)系老師,跟他們談談。面對他們的眉頭,面對他們的笑臉卻無
可奈何的說“沒有名額”,我都感覺沒什么希望了。一個院士甚至對我說:“你們四
川大學是什么學校?二流都算不上,最多算個三流大學。你怎么能來我這里!” 我
深受打擊,可是我還是沒有放棄。最后我找到了一個老師,我們一開始就談的挺投機
。他聽說我跟Knuth有聯(lián)系,挺高興的說,哦我知道他,好多年前來我們這里做過報
告呢。我終于覺得找到了知音,于是決定就跟著他學習。老師找好了之后還有一個面
試,是別的老師參加的,我說什么他們似乎沒有認真聽,就一個勁看我的考試成績這
種我不屑一顧的東西。我面試時特意穿上了Knuth送我的MMIX T-shirt,他們大概根
本不知道是什么,我也沒有提起。
不過老師只對我的體育成績提出了疑問,說你怎么才80多分?你的身體能不能勝任繁
重的學習任務啊?我笑著回答,我每天還跑5000米呢,我們學校打分比較嚴,難道清
華的學生體育都考90?面試就這樣通過了。
推薦信與散伙飯
面試通過后回到學校還要辦一些手續(xù)。成績單,推薦信等等,跟申請外國大學研究生
院差不多,讓我感覺挺正規(guī)的。院長對我挺好的,同意幫我簽推薦信。可是簽完字之
后他對我說:“你別以為他們覺得你是個人才。他們是根本招不到人!他們那里像你
這樣的學生都出國了,剩下的是最差的。誰想讀博士???你別太高興了。” 我笑著
應付這突如其來的打擊,在心里卻不斷為自己的選擇辯護。清華一定是好樣的,不會
讓我失望。它是我的夢啊。
很多麻煩的手續(xù)之后,終于拿到了我夢想的大學的錄取通知書,可以離開川大這個鬼
地方了。畢業(yè)的散伙飯上,看著大家喝得酩酊大醉,還有人在咆哮說居然連川大的文
憑都沒拿到,我一個人默默地想象著即將到來的清華的快樂生活,暗自慶幸。
散伙飯到了尾聲的時候,我詫異的看到一個平時不太熟悉的同學拿著一杯啤酒走過來
。我挺緊張,我最不喜歡別人給我敬酒了,說是客氣,其實很虛偽。沒想到他說:“
我敬你一杯,大牛人。聽說你被清華大學錄取作了博士。我干了,你隨意。” 我不
知如何回答,我一向不知如何應付別人的恭維。還好他沒有讓我也干杯,倒是夠尊重
人。沒想到喝完他接著說:“我知道你是怎樣的人。我很仰慕你,你是真正喜歡研究
的人??墒俏乙嬖V你,清華的人并不會比我們好多少。大部分人也只是想混一個學
位,將來找個好工作。沒有多少人可以跟你一起研究的,你去了必定很孤獨。我就很
奇怪你這樣的人怎么不出國呢!你會后悔的。”
我有點不高興了。一個人說你的選擇是錯誤的,你的反應是什么呢?反正我當時為我
的“清華夢”作了一番辯護,說我進去自己好好研究,應該還是能夠很好的,畢竟這
是我從小的夢啊。可是沒想到,他說的居然是對的,我現(xiàn)在開始感謝他了。
計算幾何,創(chuàng)造力的復蘇
清華還是一樣的上課方式,大部分課也是很多人一起上,一起打瞌睡。老師也是照本
宣科,我居然發(fā)現(xiàn)他們其實跟川大的老師沒什么區(qū)別。清華的不同之處就是,一到考
試的時候原來進行的一切娛樂活動都不見了人影。原本每天晚上都有人一起玩輪滑,
考試的時候就只剩下我孤零零的一個人。因為大家都怕考試,開始熬夜復習了。還有
就是上課不容易逃課了,有些老師會突然點名,缺席會嚴重影響最后的成績。
對于博士生,傳說還有一個規(guī)定,那就是后10%淘汰。也就是說,不管你成績如何,
如果成績排名在課程的后10%,那么就要重修。而如果兩門功課重修,就會被開除。
面對如此殘酷的規(guī)定,很多同學都惶惶不可終日。我就是在隔壁同學的嘮叨聲中度過
了第一期。不過我還是沒有把考試當回事,所以我也沒有去驗證這個說法的官方真實
性。我仍然不去聽老師劃重點,我仍然不覺得老師出的題目有什么好,我仍然討厭有
人讓我們用手算矩陣。可能覺得太殘酷,還是覺得要是開除了博士生誰來干活,這條
規(guī)定后來改成了如果博士生上了80分就可以不重修。我也不知道為什么我覺得考砸的
科目也上的了80,故意放我過去的嗎?
但是我的生命中出現(xiàn)了這樣一門課程。它改變了我對老師的看法,讓我覺得上課原來
也可以如此有趣。這就是計算幾何。上課的人很少,只有十來個人。因為聽說這門課
很難,很多同學都沒有選。但是我就是那種知難而進的人。老師上課的方式跟別的課
程很不一樣,大家坐在一個小教室里,老師有精美的幻燈片,有動畫,不時還插入一
段大科學家,大哲學家的名言。上課時老師會停下來很多次讓學生提問題,下課大家
都積極踴躍的討論新奇的問題。課程的評分方法也很特別,平時成績占到30%的分量
,作業(yè)分為幾種分值,可以自己選擇做不做,作業(yè)的總分數(shù)乘以30%,加上最后大作
業(yè)的分數(shù)乘以70%,就是最后的得分。說真的,這門課太有趣了,我就只逃過一次課
。但是還是有時候人數(shù)不到一半,因為其他課程壓力太大,有人都去復習別的課程了
。但是鄧老師從來不點名,還對逃課的同學表示同情。還問我們在座的有沒有其他課
特別緊張的,下次課可以不來。真是讓人感動。
我就是在這門課上認識了王益,我們親密無間的合作,讓我領略到了什么叫做研究。
大作業(yè)的時候我們在一個小組,其實是三人一組,但是那第三個人其實什么也沒干。
我和王益決定寫一個3D的Voronoi圖掃描算法演示程序。王益的3D圖形編程能力很強
,所以他做界面,由我負責算法生成數(shù)據(jù)作為后端。我們分別在自己的機器上編寫程
序,不時的打電話討論接口的設計問題。我找到了Bell labs 的 Steven Fortune 的
算法程序,決定看懂它,然后改造成演示需要的分部運行的算法。但是 Fortune 的
程序幾乎沒有注釋,而且使用了一種奇怪的數(shù)據(jù)結構,很難理解。Fortune 還在程序
里說到,這個算法雖然有效,但是對于程序員來說是一個挑戰(zhàn)。所以我email請他給
我一份算法論文的拷貝,他同意了。但是一個月之后,信才到我手里,那時我們已經
完成了作業(yè)。因為我花了一個星期看懂了他的程序,還換掉了他的麻煩又低效的數(shù)據(jù)
結構。隨后成功的把后端與王益的前端設計好接口聯(lián)合。等我看到 Fortune 的論文
,發(fā)現(xiàn)程序里面其實已經改進了論文的核心內容。我深深體會到實踐的重要性,也許
有了他的論文我反而會被誤導,寫不出實際可以運行的程序。
由于我們的團結努力,老師對我們的大作業(yè)非常滿意,他給了我們最高的分數(shù) 100。
由于我們兩個都在課下超額完成作業(yè),所以總的分數(shù)我們兩個都是滿分。這是我闊別
已久的100分。只有在小學我才拿到過這種分數(shù)??!對于一個對考試成績滿不在乎的
人,100 又意味著什么?如果是別的課程我會毫不在乎,就像我得了80分一樣??墒?br>
這個100分是我們團結研究而來的,它包含了對我們的合作意識,對我們的友誼,對
我們的熱情的肯定。雖然我覺得我們的東西還有改進的余地,但是我接受這個100分
!也只有這樣的課程,我才可能得100分。
從此我感覺到了什么叫做研究。這跟我小時候干的那些事情沒有什么兩樣。你在身邊
發(fā)現(xiàn)一個問題,想知道為什么。然后你就想去獲得解決這個問題的知識。你去看書,
你去問專家,你上網(wǎng)去搜索。如果沒有發(fā)現(xiàn)答案,那么好啦,你就可以自己試圖去發(fā)
現(xiàn)為什么,這是最有趣的部分。知道了為什么,就想讓這個東西有用處,對人們的生
活產生好處。這就是研究。
《完全用Linux工作》與TeX的推廣
這么說來我還是對清華有些好感。遇到一個好老師讓我從呆頭呆腦的技術工人的狀態(tài)
恢復過來,開始追求自己的夢想??墒堑谝荒臧阉械恼n程上完之后,我就發(fā)現(xiàn)原來
清華所謂的“研究”是如此混沌。其實清華大部分人進行的所謂的“研究”是什么呢
?其實就是寫作,不是科學研究。這一點以后我會詳細敘述。
遠遠看去外觀華麗的有著先進的工作站的實驗室,卻沒有可以安心看書的地方。機器
挨著機器人挨著人,書都沒地方放。師兄師姐們都在忙著用word寫論文,不時有兩個
人隔著幾行機器大聲談話。實驗室通風不好,還有一個大型工作站在嗡嗡作響,我進
去一會兒就覺得頭暈,所以后來就不想去了。PC機以前都是公用的,每次都會用不同
的機器,卻沒有我想用的軟件,麻煩死了。好不容易實驗室買了新機器分配給個人,
裝上一個 Linux 系統(tǒng)開始寫程序,還在Sun工作站上安裝了多達1G的GNU程序。卻被
一個師兄嘲笑說那種跟DOS一樣落后的東西你居然也用。于是我寫了一篇文章叫做《
完全用Linux工作》,放在主頁上駁斥這種觀點,引起網(wǎng)上linux界軒然大波。后來我
又發(fā)現(xiàn)幾乎全校的論文都是word排版的,我本科畢業(yè)論文就用LaTeX了,清華居然這
么土!我對word排版的論文質量恨之入骨,所以又寫了文章宣傳 TeX,打擊 word 在
論文排版的市場。這下子我出名了,真沒想到,出名不是因為我的研究成果,而是因
為這些業(yè)余的東西。我起初其實不希望我因此出名,但是看到旁邊的人都用上了 TeX
,我覺得我還是做了一件好事,至少讓論文看起來漂亮了一些。
可是論文的內容,卻是我永遠的痛!
培養(yǎng)計劃
我在第一年就把功課全部上完了。本來我想多選幾門課,比如法語,可是清華的博士
要選課需要提交一個“培養(yǎng)計劃”給導師簽字。導師同意之后才能修改。導師看到我
選了法語,就說這個第二外語還是自己學學就行了吧,旁聽也行啊,我主要是怕你課
太多了考試不通過就麻煩了。我當時沒有說什么,就把法語去掉了,只留下剛夠學分
的課程。其實我還想選很多的,體育,音樂什么的,都不好意思跟導師說。后來才知
道宿舍對門的碩士生選了鋼琴課他們導師都不管。為什么我們就受到如此待遇?
可是沒有把法語加到培養(yǎng)計劃卻成了我的遺憾。有一個新學期我去旁聽了第一節(jié)法語
課之后老師就說,我知道很多同學是來旁聽的,這樣教室里人太多了,效果不好。這
對自己對大家都不好,下次請旁聽的同學不要來了。我臉皮薄,下次就沒有去了。后
來自己想自學卻又沒有老師教,看了十集Reflet之后就此作罷。
后來我終于明白了,清華不需要全面發(fā)展的博士生,而其實導師還會在某種程度上削
弱學生的能力。導師并不是真的為我們好,而是不喜歡我們上課,因為上課不但會花
掉研究(或者干活)的時間,而且讓他們眼界太開闊,這樣學生會很容易有別的選擇
而走掉。所有的活動:助教,實習,都必須有導師簽字。而大部分導師就會找借口不
讓學生干這些事情。不給他們助教和實習的機會,讓他們以后不好找工作,只能為自
己服務,或者為自己的熟人服務。甚至這次我去西藏,要辦邊境證都要有導師簽字。
辦事的老師說,沒有導師簽字,你跑出去了不回來怎么辦?大媽,我跑那種鬼地方干
嗎?
除了這些,還有兩大法寶就是博士學位和違約金。清華的博士學位有多值錢知道嗎?
不知道?那么博士退學要交30000塊錢的違約金,這下大部分窮苦學生怕了吧。這就
是你們的賣身契。清華就是這樣把研究生牢牢地控制在自己的掌握之下。我對一個如
此害怕學生跑掉的不自信的學校還能說些什么?如果你是好樣的,就不會害怕我們跑
掉!該跑掉的最后終究會跑掉。
我的自我培養(yǎng)
在學習上,我永遠是個吃不飽的人。選不了課,我就去旁聽。旁聽后覺得老師講的不
好,我就自學。在我有空的時候,我就會去圖書館借書看。在我本科的時候,我就已
經發(fā)現(xiàn)自己的一個特點,我會很快發(fā)現(xiàn)新的東西,并且學會使用它。雖然這些東西并
不是創(chuàng)新,但是它們豐富了我的技能,讓我有更大的能力去進行創(chuàng)新。
計算幾何課的一次作業(yè),我為了寫一個算法的演示程序,花了3天時間學了一點Java
語言,正好能夠完成那個程序。我開始接觸到TeX的底層細節(jié),看完了The TeXbook,
并且找出一道練習題答案的錯誤。開始移植gbkfonts程序,作為我的CWEB語言的練習
??赐炅藥缀跛?nbsp;Xlib 的手冊,深入了解了 XWindow 的工作原理。我接觸到 Scheme
,并且做完了 SICP 的大部分習題。我領會到 LISP 的強大,改變了我們多年以來對
這種古老語言的誤解。接著我又學會了 Common LISP,并且開始用它設計用來研究計
算幾何的一個函數(shù)庫。另外還找了一些希奇古怪的程序來玩,寫了一些心得體會放在
網(wǎng)上給別人看。
我意識到自己數(shù)學還不夠強,就開始看一些數(shù)學方面的書。Concrete Mathemtatics
, What is Mathematics?, Science and Hypothesis, GEB, ... 雖然每一本都沒有
看完,但是我逐漸相信自己的數(shù)學能力,發(fā)現(xiàn)數(shù)學原來如此簡單。我開始對哲學感興
趣……
我們也有討論,原來是這個樣子
上完課,就該開始搞研究啦??墒茄芯渴裁茨??老師給我?guī)灼撐目矗馑际亲屛铱?br>
看有沒有什么想法。
我開始感覺沒有頭緒,就跟導師說能不能找?guī)熜謳熃愀矣懻撚懻摚€有別的人在做
這個嗎?他說,就你一個人做這個,每個人做一個題目,獨立思考,這就是研究。我
覺得是啊,我應該獨立思考??墒沁^了一段時間發(fā)現(xiàn)不行啊,我想實現(xiàn)一個想法,但
是我不知道是不是已經有人試過失敗了。實驗的時間開銷會比較多,所以我想知道那
么多厲害的人,為什么都不用這種明擺在那的方法?當我再次提出需要討論的時候,
他似乎有點生氣的說:”你為什么總是想有人跟你做一樣的東西啊?你不是想抄襲別
人的論文吧?” 我不發(fā)話了。繼續(xù)做我的實驗,結果確實不理想。雖然自己實踐很
重要,可是要是能利用別人的經驗,何樂而不為呢?這并不是偷懶。如果有人討論,
很多時候一個人提出一個問題,另外的人就會告訴他這個問題是不是有人做過,有什
么重要性,憑直覺告訴他有什么難度??墒侨绻麤]有討論,連問問“有沒有人做過”
的機會都沒有!
后來我就經常上網(wǎng)看看國外的大學怎么搞研究,發(fā)現(xiàn)他們都有 seminar,討論組。后
來又買了一本 A Beautiful Mind,看到Princeton以前的天才們每天都在一個地方喝
茶,討論問題,爭得面紅耳赤,回家分頭思考,做實驗,第二天喝茶時再討論。那就
是我從小夢寐以求的生活啊!計算幾何課已經讓我愛上了與人合作和討論的方式,現(xiàn)
在卻孤零零一個人了。我必須告訴導師,合作和討論是非常重要的。在我據(jù)理陳述之
后,他說:“好吧。反正師兄師姐各自有自己的事,你要討論什么就跟我和你副導師
討論吧。” 于是我就開始了跟他們兩個星期一次的見面討論。每次討論都感覺他們
不知道我在說什么,他們心里想的都只是這個能比別人的好多少呢?能不能投到這個
會議呢?如此宏觀。我覺得跟他們討論完全是浪費時間。
后來課題逐漸有了新的同學加入,導師決定跟中科院數(shù)學所的人一起申請一個項目來
研究。于是我們兩個星期一次去中科院討論。不過感覺他們那邊也差不多。中科院的
老師覺得他們的研究太理論,期望我們能給他們帶去一點實際的東西??墒俏覀円矝]
有什么實際的東西,所有的問題都是從別人的paper里看到的。副導師就開始跟他們
說這個問題有多么多么重要…… 他們也借此機會開始研究以前放下的一些問題???br>
之討論的感覺就是沒有目的,沒有主題。有時有人說他在想一個什么問題,說了一會
兒就被否決了。有時候就是一個人看了一篇paper之后做一個感想。我坐在那里就在
想,我們到底在干什么?我們甚至都不知道什么東西值得研究,還研究什么?后來師
弟師妹們就開始考慮把問題變一變,看看能不能產生新的問題。他們的做法照我的話
說就是“有問題也要解決;沒有問題,制造問題也要解決!”
博士生論壇的時候,同學們都覺得有類似的問題,討論不足,交流不足。所以我提議
成立一個類似國外大學的 Common Room,用來討論問題??墒谴蟛糠掷蠋熣f:“這樣
一個房間,天天都要有那么多人在里面待著。誰來出這個錢?” 是啊,老師自己的
辦公室都要錢,哪里可能有什么 Common Room?就算有了 Common Room,在里面討論
的無非還是文章發(fā)到哪里的問題。制度決定了行為,我的設想太理想化了。
分析一下,為什么老師不提倡討論呢?因為問題是有限的。老師辛辛苦苦這么多年搞
來搞去都在搞這些問題,分配給你們每人一個,互不沖突。要是兩個人都搞一個問題
,這下好了。出了成果論文歸誰?學校要求必須第一作者才算論文數(shù)。要是兩個人都
寫論文,那么投到同一個會議肯定有一個要被reject。這樣對集體發(fā)展不利嘛,大家
不就是發(fā)幾篇論文混畢業(yè)嗎?何苦?
paper, paper, 還是paper
但是我更關心的是論文的內容。說到論文我就痛心。我的方向上我至今還沒有看到幾
篇我覺得像樣的文章。我主要進行集成電路布線算法的研究??雌饋砀呱睿鋵嵤呛?br>
簡單的問題,一個平面上有一些點是電路里的電極,現(xiàn)在需要用銅線把它們連起來,
怎么樣讓連線的長度或者時延最短?這個問題跟幾何上一個有名的問題 Steiner tree
問題有關系。我的導師就是以前寫了一篇這樣的paper發(fā)到IEEE transactions。
已經畢業(yè)的一個師兄就在他研究的基礎上修改來修改去,發(fā)了好幾篇paper。英文的
不夠還翻譯成中文,投到國內的期刊。后來一個師姐又在這個師兄的基礎上進行修改
,又發(fā)了好多篇。可是在我看來,他們的論文純粹就是炒冷飯,沒有什么創(chuàng)新。一個
問題解決了,那么解決問題的人顯示了他們的聰明,至于這個問題對人有什么用,他
可以暫時不管(雖然我也嚴重反對這種做法)。后來又有人來搞這個問題,多半是被
老師分配來的。他也小修改一下,修改想法其實不費工夫,主要是你怎樣把你的 Introduction
寫好?可以讓別人覺得你的工作有意義?這就是功夫。作家的功夫。我有一次面見
INRIA的頭目 Jean-Claude Paul 時,他就對我說:“Tsinghua students are all
writers, not scientists.”
現(xiàn)在清華研究生做的事情無非就是,寫好paper,然后找個地方投出去。SCI 的最好
,EI的其次。偏僻的沒人看的雜志也沒關系,交錢也沒關系。我就知道日本的一個SCI
索引的期刊收1000美元的版面費。導師出錢,不投白不投,投了好畢業(yè)呵!
現(xiàn)在我也被“分配”來做這個問題。雖然說是一個有名的問題,但是這個有名的問題
已經被研究了好幾十年了。有很多牛人做出了很重要的貢獻,這里面不乏 D.Z.Du 之
類的傳奇人物。但是我們?yōu)槭裁囱芯窟@個問題?我至今沒有搞懂。
開頭導師只是給了我兩篇paper,據(jù)說是以前他一個得意門生寫的,美國某大學的副
教授。其中有一篇說是如何在不構造 Delaunay triangulation的情況下生成 MST (
最小生成樹)??吹竭@篇文章開頭說在 rectilinear metric下, Delaunay triangulation
就不能用來構造 MST 了,所以他設計了一個新的算法。這個算法比起 Leo Guibas
的算法更加簡單。文章里還提到一次 Matroid,讓初出茅廬的我覺得高深莫測???br>
是我對“Delaunay triangulation 不能用來構造 RMST” 這個說法產生了懷疑。經
過理論分析我覺得即使在 rectilinear metric下,Delaunay triangulation 也可以
用來構造 MST 的,我決定實踐我的想法,寫一個程序從Delaunay triangulation 構
造出一個 RMST。這本身不是什么創(chuàng)新的工作,可是我卻在想,這樣一個東西能不能
用來構造 Steiner tree 呢?后來我真的就想出一個辦法。實驗表明我的算法比以前
的算法要快幾倍。
這是不是說我的算法是一個值得寫paper的東西呢?導師說我應該寫一篇,但是我認
為我只是在挑別人的毛病時意外想出了一個改進的算法,并不會對將來的研究有什么
改進。雖然程序快了一些,但是很少有那么大的線網(wǎng)需要這么快的算法,而且?guī)妆兜?br>
提高在我眼里不算是一個理論上的改進。所以我內心覺得這個結果不令我興奮,不想
寫論文。但是在老師的一再要求下,我居然把這個研究寫成了兩篇paper。按照他的
說法:“應該分階段總結你的成果。” 起初投出去的時候評委總是說這個東西不實
用,導師說這是評委的問題,他們覺得不實用我們就投到理論一點的會議。經過幾次
投稿,還是失敗了。我終于忍不住了,對導師說出我的想法,我說:“看一個作家的
水平,是看他扔在垃圾筐里的紙。就讓我把這篇paper永遠藏在我的垃圾筐里吧。”
但是他不甘心,說你要相信自己的實力,然后把我的算法胡亂夸獎了一番。我說我
不管了,隨便你怎么辦。我就開始研究我自己喜歡的東西去了。之后他居然真的投中
一個歐洲的會議,還是被 LNCS 收錄的,LNCS 是 SCI 索引的,所以我居然有了一篇
SCI 文章!我自己不喜歡的文章也是 SCI 了!
第二篇論文就更傳奇了。幾投不中,就其原因,評委說是沒有和現(xiàn)在最先進的算法程
序實驗比較。而我沒有比較的程序,就是那個讓我鄙視的人的程序。沒辦法,求他給
我代碼,只給 binary,也不給源代碼。比了一下,確實比他快。不過我估計他程序
寫的有毛病,老是 core dump。不過還是記錄下數(shù)據(jù),添到論文上。一投就中,得了
一個最佳論文獎。然后就有一篇校內新聞宣傳:“我校王垠同學獲得XXX會議最佳論
文獎。這是大陸學者首次在如此高級別的會議上獲得如此高的獎項。” 這個“高級
別”的會議,在我看來就是個垃圾。美國人都把最差的論文投到這里,就是為了來旅
游一圈而已。
我見過的這種低級別的會議,低質量的論文幾乎都是從 IEEE 那里出來的。道理很簡
單,IEEE 會議多,會議論文集都像兩塊磚頭那么厚,還是雙列小字排版,當然能容
納下這么多的垃圾了。所以我對 IEEE 也沒有好感。
火山小規(guī)模爆發(fā)
第一篇投中了會議之后,副導師很高興的說“代替我去開會”,到希臘Santorini島
玩了一圈?;貋磉€跟我說希臘不好玩,好苦啊,幸好你沒去。然后就繼續(xù)要我為算法
申請一個專利。
寫這個論文我都已經焦頭爛額了,一點都不感興趣。現(xiàn)在還要寫專利,“要像教小學
生做這件事一樣,一步一步的把算法寫清楚,舉出實例”。我覺得快不行了,再這樣
折騰下去,我到博士畢業(yè)也許也就只搞出這些小兒科東西吧!我終于小規(guī)模爆發(fā)了一
次。我坦蕩的告訴了副導師我的想法,我覺得做學問應該是什么樣,我覺得這么點東
西不值得申請專利。我還告訴他我對國內的研究環(huán)境很失望。
他慌了,可能以為我想要退學,趕忙找我談談。對我說,我知道你心中有很大抱負。
所以這次就不寫專利了。我知道你想有更好的研究環(huán)境,但是不踏踏實實做好現(xiàn)在的
工作,又怎么能有大的創(chuàng)造呢?然后就開始舉愛因斯坦,居里夫人的例子…… 然后
說,其實你在這里好好努力,將來出國的機會多的是,你想去Harvard也行,你想去
Princeton,都行?。?nbsp;
你說行就行?你去去給我看看?我們實驗室從來就沒有去這些地方的。
全面發(fā)展
在對清華的研究完全失望了之后。我就準備考GRE,TOEFL出國了。我去上了一個新東
方的班,沒學到什么英語方面的東西,倒是接觸了很多新的思想。老羅的言論特別有
趣,雖然我不是完全贊同他的意見。寫GRE作文特別培養(yǎng)思維能力。我為了寫GRE作文
,常常為了一個不明白的問題到圖書館翻閱英文的哲學書籍,有關教育的書籍……
對于很多問題我得到了完全不同的觀點。大學的目的是什么?人的價值觀是由理性決
定的嗎?等等等等。我讀到了亞里士多德,柏拉圖,康德等人的言論。甚至有個哲學
家說 "All Animals Are Equal". 我看了他的文章覺得有很多可以批駁的觀點。我看
到迪卡爾的文章,說“要掌握科學就要掌握它的全部”,這句話真合我心意,我就是
想做一個懂很多東西的人啊。我想結合藝術與科學。雖然我這個觀點得到了某位圖靈
獎得主的批判,但是我仍然相信迪卡爾。
從這些互相矛盾的觀點中,我有了自己的判斷力。我開始能夠揭開從小蒙在我眼睛上
的有色眼鏡看問題。我開始檢查我自己的思維,我以前的觀點??纯此鼈兪欠袷俏唇?br>
判斷就盲目放進去的。我檢查到很多很多的錯誤。我的待人接物,我對他人的理解上
,都有不足之處。我還檢查到媽媽傳遞給我的一些有色眼鏡。我開始學會用自己新的
方式對待他人,看待事物。我不再盲目相信權威,哪怕他是諾貝爾獎得主,圖靈獎得
主。我有了自己的自由思維。
在那段時間,我感覺我的心智大門被開啟了。我開始嘗試從來沒有做過的事情,以及
從來不認為我能做好的事情。我一次又一次的相信我能。我能學會畫畫,我能打好太
極拳,我能理解古典音樂…… 世界還有那么多美好的事情等著我去學習去開發(fā)??!
可是,我們卻像囚犯一樣被判了5年在清華。博士學位就是我們的枷鎖。
醒悟,paper的奧秘
清華研究生談論的重點是什么?是 paper。吃飯的時候談,喝茶的時候談,睡覺的時
候也談。隔壁的同學在進校第一年就為paper惶惶不可終日,說:“你知道嗎,他們
要求我們發(fā)SCI,怎么辦呢?我?guī)讉€師兄都是因為沒有paper延期畢業(yè)的。” 這恰好
就是那個為后10%淘汰惶惶不可終日的同學。他的老師是個院士,可是他在手下就干
一些寫word文檔之類的雜活還忙得要命,根本沒有時間思考問題。
后來聽說學校有規(guī)定,博士生必須發(fā)4篇paper才能畢業(yè),其中必須有一篇是SCI索引
,或者兩篇EI索引??瓷先ス诿崽没实腟CI, EI,不就是跟 google 差不多的東西嗎
?被它索引了怎么樣了?特別是對文章的篇數(shù)作要求,而對質量沒有判斷。我其實讀
了兩年都還不知道學校是這樣規(guī)定畢業(yè)標準的。當我知道的時候,已經有人告訴我SCI
=Silly Chinese Index。真是讓人啼笑皆非。
學校沒有能力評價學生的水平,就拿文章數(shù)來衡量。這樣的畢業(yè)標準造就的是怎樣的
學生,怎樣的實驗室呢?難道導師真的沒有能力判斷paper的好壞嗎?有些是,但是
有些不是。即使他知道你的論文沒什么價值,也會叫你發(fā)表。我發(fā)現(xiàn)paper數(shù)量的背
后,是某些人的如意算盤。想一想是怎么回事吧。國家看什么來撥款研究?看paper
。看什么來評價一個學校的水平,也是paper。國家沒有能力評價你的能力,當然只
有看你有多少paper。所以有了paper就有了錢。只要你能寫paper,培不培養(yǎng)你,你
將來的發(fā)展,關我們什么相干?你寫的paper別人能不能看懂,能不能轉化成生產力
,管我們什么相干?怪不得有的院士想盡辦法也要多收學生,寧愿自己幫學生出學費
也要他進來。因為學生就是財源。paper可以帶來基金,可以在美國買小車洋房,沒
有基金就讓學生干活吧。一個月幾百塊錢吊著一條命在那里為你拼命,誰叫他們想要
那個博士學位呢!
該清醒了,博士無產階級!
告別清華的博士學位
現(xiàn)在我已經厭煩了國內所謂的“學術”。我準備放棄清華的博士學位,出國找個好老
師,進行真正的研究。博士第4年了,做出這樣的決定真是不容易。有人告訴我不要
放棄,你知道有多少人正在羨慕你?你知道一個清華的博士學位有多么值錢嗎?但是
我不能這么沉默下去了!
博士學位,累壞了多少年輕的中國人!我不再為它浪費我的青春。如果國外也找不到
好的老師,我就找一個簡單的工作,和我心愛的人一起生活。有人說這是浪費人才?
在清華混沌的過日子才是浪費呢!當一個侍者至少也讓我感到對社會有貢獻,看著顧
客滿意,我會露出笑容??墒亲鲆粋€博士卻沒有。我感覺自己是個沒用的人。
我已經完全看透了中國教育的失敗。我高中的時候就受到它的傷害,這種傷害延續(xù)到
現(xiàn)在。中國教育已經成為埋沒人才的禍首。留在這個圈子里就是屈服,我不出聲,大
家都不出聲,這個世界就會繼續(xù)這樣郁悶的運轉下去。我今天要對這個系統(tǒng)大聲地說
一聲“不!”
我離開了??墒侵袊肋h也不缺少為清華拼命的人!因為他們的媽媽會告訴他們,清
華是全中國最好的學校。你要考上清華,為我們光宗耀祖……
行動
2005年9月22日下午3點,我在東主樓導師的辦公室里跟導師和副導師再次重申了我的
想法。包括以上的一切,和我退學的打算。導師經過一番舉例愛因斯坦,居里夫人,
叫我踏踏實實的說教無效之后,嚴厲的批評了我只顧自己,不顧及教研組為我付出的
心血。然后說:“要是你不能再為實驗室作研究,我們就不能支持你了。前兩個月實
驗室發(fā)的錢我收回,你如果決定可以馬上寫退學申請。我們實驗室沒有什么損失,我
們有的是人干你的事情。不過我要警告你,你一旦退學,連學校的住宿都要被收回!
”
接著是副導師尖聲的咆哮:“是啊,你瞧不起我們。我們是沒有你聰明,可是我們勤
勤懇懇……你知道你得的那個best paper award,我們付出了多少努力嗎?你認為這
么容易拿到嗎?那是多少國外專家鑒定……”
真像是一場鬧劇,一場夢。他平息下來之后,我說了一聲“再見”,然后默默地走出
了辦公室。
你們要退學申請?這就是我的退學申請。
尾聲
晚上收到副導師的email說:“還有一件事需要向你說一下:你在學校學習期間所取
得的成績包含你的努力、導師的指導幫助、同學們的幫助,還有學校和國家的支持。
你作為博士生學習階段取得的成果屬于教研組、學校和國家。正如同我們作為職務發(fā)
明的專利屬于學校一樣。
你在MST、SMT等方面取得了結果,它屬于教研組、學校和國家。單位有責任進行合理
的應用,為國家建設、國家榮譽服務。有責任進行進一步的整理豐富、向高水平的刊
物投送。這里我們想說明一下上述的情況,同時,也告訴你一下:你若愿意將這些成
果進行進一步的整理、我們已經給你提出了具體的修改意見,歡迎你按照進行修改。
你若放棄,我們將進行具體的改進、投遞。我們將尊重你的意見。謝謝。”
最后還是沒有忘了paper的剩余價值。進一步驗證了我的判斷,他們在乎我嗎?不。
他們只在乎paper。至于我流離失所,又有何相干?我不知道有多少無知的弟弟妹妹
又會把他們的研究建立在我不屑一顧的paper之上。