1. 程式人生 > >東方哲學與軟體開發

東方哲學與軟體開發

       前幾日在柏彥有作過一次講座,是關於軟體哲學的。之前很長一段時間總是想寫些東西出來,一直未能如願。一方面是因為浮燥的緊,覺得做學問遠沒有工作、掙錢、娛樂、睡覺來得舒坦直接。這並非我一個人的毛病,國內軟體行業的整體大環境就是如此。另一方面閉門自問,自己既算不得蔥,也歸不得蒜。寫些皮毛出來笑掉一片大牙就不好了。可那些真正的先知們又遲遲沒有行動,搞得好像做起學問來就一定要去國外,在國內就作不了學問一樣。我周邊常常會有這樣的例子,有去美國的,有去英國的。那些地方去不了,日本、韓國也可以。好像真的去了那些地方就有了學問,以我看來,不過爾爾。其實真正做學問的人是往中國跑的,遠的不說,就拿眼前的,我們的近邦日本,就常常把我們的東西拿過去翻譯過來,加些註釋,作些評定,於是就成了商業聖經,成了枕邊寶典。反倒是我們不知所以,要看也要看那些國外翻譯的作品,好像那文化的起源不是在中國,而是到了日本、韓國,甚至是美國這樣的地方。比如《大長今》,這部韓國電視劇,最近就火的可以。我也慕名看了一眼,結果看不下去。我還是喜歡《康熙王朝》、《大宅門》這樣的電視劇。可以這樣的電視劇太少了,為什麼?大師們都在搞“大製作”,哪裡有什麼時間做這種“非藝術性”的東西。所以有了《英雄》,所以有了《無極》。有實話,《英雄》拍的還是不錯的,不次於那些所謂的美國大片。《無極》我沒看過,不好妄加評判。但是比起《活著》,比起《霸王別姬》這樣的作品,他們很難再超越了,我想。因為他們以前是在做電影,現在則是作錢。軟體行業也是一樣,我常常會在課堂上介紹一些國外的大師,也常常會列出一些行業內的書目,幾乎都是國外的。不是我不願意列國內的,實在是沒什麼可列。所以,我想寫點東西,並非我以為自己現在可以寫了,而是實在沒人寫了。有真正的高人看到了,就給出點意見來,理個頭緒,作個綱,給黑暗中的眾人指點個方向。要是隻知道反對、謾罵,就有些可笑了,姜志輝頭一個看你不起。因為在我看來,你的學問都在嘴上。
      東方哲學的歷史其實已經非常悠久了。在Karl Jaspers所著的《Die grossen Philosophen》一書中就專門提到了東方哲學,提到了老子。而事實上,老子作為中國本土道家的代表人物,他的《道德經》短短五千言,每一句都涵蓋著三玄三要的妙義。拋開宗教理念,在我看來,老子與佛陀在言論中所闡述的哲理不但不衝突,反而相暉相映,似成一體。
      翻開《道德經》的第一篇,老子為我們連串貫通了全書各章節的脈絡和主旨:“道可道,非常道,名可名,非常名。無,名天地之始,有,名萬物之母。故常無,欲以觀其妙。常有,欲以觀其徼。此兩者,同出而異名,同謂之玄。玄之又玄,眾妙之門”。我不是搞古文研究的,同時之於思想體系的研究也知之甚少。但作為一名軟體工作者,我試圖以自己的理解和認識對這段文字加以陳述和解釋,算是拋磚引玉吧。如果有人對此有不同的看法,正如我前文所述,歡迎你加入到我的行列中來,大家一起討論,一起進步。
      首先,關於道的理解。古文中關於道的應用非常多。我們列舉一二。
      第一種道:
      馬致遠(元):“枯藤老樹昏鴉,小橋流水人家,古道西風瘦馬,夕陽西下,斷腸人在天涯”。
    《說文》:道者,徑路也。
     子產《左傳》:天道遠,人道邇
     子思《中庸》:天命之謂性,率性之謂道
    《老子》五十三章:大道甚夷,而民好徑。
    《論語•陽貨》:道聽而途說
    《史記•項羽本紀》:從此道至吾軍,不過二十里耳。
     孫子:兵者,詭道也。
    《孫子•軍爭》:日夜不處,倍道兼程。
     從這個角度上看,“道”,其實就是徑的意思。往往用來表達為了到達某個目的地所經過的途徑,我們稱之為道。
     第二種道:
   《楚辭.離騷》:來吾道夫先路
   《莊子.田子方》:其道我也似父,成玄英疏
   《國語.晉語六》:智子之道善矣
   《禮記.月令》:以教道民
   《陸釋》:道,本亦作導
   《易•繫辭上》:知周乎萬物而道濟天下
   《管子•牧民》:道民之門,在上之所先。
   《史記•留侯世家》乃學辟穀,道引輕身。
     這裡面的“道”,其實是教導、疏通的意思,我們前人經常稱老師為師父就是這層意思,即一日為師,終身為父。
     第三種道:
   《史記•李將軍列傳》:萬戶侯豈足道哉!
    晉•陶淵明《桃花源記》:不足為外人道也。
     這種道的含義我列舉的最少,也是我們平時最為熟識的一種關於道的解釋,就是道來道來,說的意思。
     第四種道:
    《易.系傳》:形而上者謂之道,形而下者謂之器。
     道書:“離有離無之謂道”
     佛經:即有即空,即空即有。
   《荀子•天論》:脩道而貳,則天不能禍。
   《莊子•秋水》:聞道百,以為莫己若者,我之謂也。
   《道德經》:道生一,一生二,二生三,三生萬物
      這個道是最難表達的,正如老子的後半句“名,可名,非常名”所論述的那樣,這種道的含義是無法進行標識的。如果非要作個標識的話,大概就是宇宙本身的規律。通佛家“第一義不可言”中的義字。
       在這四種解釋裡,我們給“道可道,非常道”加以標識是非常困難的。所以老子也說,我們可以作個標識,可那是無法標識的。因為根本就沒有表象。所以有時候,我們說它叫無,是因為混沌初開,萬物滋生,它都不加干涉。我們叫它有,是因為雖然不加干涉,它卻又像母親一樣照管著我們,維護這宇宙的平衡。所以,它常常是無的,我們能夠看到它的奇妙。它又是常有的,因為那奇妙總是有邊界的。所以有也好,無也好,都是表相啊,都是我們感覺到的一部分。正如佛陀所說,無明緣於行,行緣於識,識緣於六處。這些我們就叫它玄吧。有時候有,有時候無,有和無之間是不斷迴圈的,真是太奇妙了。
      寫到這裡,想起我blog的副標題。叫做“日極則仄,月盈則虧”。想想真是有道理。
我個人在外面講述OOAD或者是UP的時候,就常常有學生問我。為什麼在你講課的時候,那些方法看起來都那麼順暢和清晰。而我在使用的過程中卻總感覺無法應用呢。我說,我給你演示的方法是我走過的路,不過是再給你浮現一遍罷了。你照著我的路走,我們的路原本就不一樣,怎麼可能會應用的順暢呢。其實,正如這道所闡述的。
      方法、過程(道)是可以用來教導、引導(道)我們,但是那些都不是永恆不變的(道)。

      難道不是嗎?那些理論,架構模式也好,用例模式也好,分析模式也好,設計模式也好,其實這些模式是什麼呢?無非都是前人的經驗,那些經驗都是寶貴的。是那些前人在某種情況下為了達到某種目的而經過的途徑啊。我們看人家是怎麼走的,怎麼用的,來總結屬於自己的方法,這樣才是學習軟體開發的真正要義。而我們很多人卻以為學了UML、學了JAVA,學了RUP,就瞭解了軟體開發本身,多麼粗淺。所以古人說,持器自閉。難道還不明白嗎。其實那些方法可以幫助和引導我們,但真正的方法是需要你自己體會自己領悟的啊。
      這就是我要闡述的道理。
      這麼看來,難道軟體就沒有哲學嗎?
      其實軟體工程只是引導我們的方法和途徑,而真正要走入這個行業,卻需要我們自己的領悟和發現。
      我們的土壤並不缺乏,而真正缺乏的卻是環境,這又是誰造成的呢?