In theory, theory and practice are the same. In practice, they are not.
意思是說:「理論上,理論與實踐是一樣的。而實際上,它們並不一樣」。這句話初看像繞口令,再看像文字遊戲,三看似乎又有點道理,只是我們這種普通的地球人是不會懂的。理論與實踐這個莞爾的關係是否只是個純巧合?如果想要知道答案,就只能試著去找出句子裡的規則。而方法就是拿它來套別的東西。
這句話在應用上倒是很容易,像是客戶問你專案能是否能如期交付,你只要回答「原則上可以啦」,其實就等於有下一句「實際上有問題啦」。只差沒有真說出口來讓客戶聽到而已。
我們憑良心想想為什麼會這般來敷衍你的客戶,追根究柢不外乎只是因為過去的經驗總結出來的理論總是有限的。人都無法預料未來,趨近於完美的理論只能讓意外發生的機率下降至最低,但誰都不敢斷言說外界環境中已經沒有事情是過去沒有被挖掘出來的。如果過去就不曾遭遇過意外,那麼原理也不可能誕生;新的問題在舊有的方案中無法解答,那麼勢必會影響到專案的進程。基於這個理由,「原則上」和「實際上」就變成了兩個會一起誕生出來、但本質上是對立的概念。這個思想是繼承自康德的實踐與理論的二元論,甚至一路追溯到更早希臘哲學時代的二元論。該論調是說至少理論和實踐彼此的關係符合這四個條件,該句子才能夠成立。
理論可以衍生多個實踐。
實踐必須遵從理論。
理論與實踐相同的地方在於前者,理論。
實踐與理論相異的地方在於後者,實踐。
因此只要相對立的兩個事物符合這四點條件,都可以套用這個到這個句子裡,它不只是單純的文字遊戲而已。這時理論就像是可以孕育一切萬物的母親,所有她的孩子-實踐-都會繼承了母親的特質。所以要找到這群孩子與母親之間的共有特質,就到母親這裡來尋找。但如果想要知道孩子之間和母親有什麼差異,就只能在孩子身上找答案。
這又好像如果有朝一日你有機會搭乘上時光機,去到未來找你的另一個分身,當見到未來的你時,你有很大的理由說另一個分身就是你,你們兩個是同一個人;但未來的你可能並不同意這個說法,因為當下見面的兩位,還有很多事情是還只發生在未來的你的身上,現在的你卻尚未經歷過。於是如果筆者大膽地套用趨同與趨異到這句子裡,就出現了:「趨同(行為)和趨異的差異就在於,趨同認為趨異和趨同沒有差異,但趨異有」這有點奇怪句子。
以族群的角色分化來說,當角色遭遇壓力時分離出來的新角色,原來是屬於舊角色的族群是沒錯。但今天如果新角色不是因為擁有特別的特徵的話,也無法分化出來成為新族群。也就是說所謂的趨異其實是把焦點放在他與舊角色不同的特徵,而趨同的時候之所以可以把自己的地位放回舊族群,是因為他還保有與舊族群同樣的特徵才行。當農夫走出自己的道路離開原始的獵人角色時,他的不同是顯而易見的,但當農夫要回去當獵人的時候,他當然是還保有原來獵人所擁有的特徵才能回去當獵人。對獵人而言,所有人都有當獵人的資格。但對農夫來說,就不一定所有人都有當農夫的資格了。
所以如果加上這句話「獵人和農夫的差異就在於,獵人認為農夫和獵人沒有差異,但農夫有」當上中介,就比較容易理解(當然這句話只有在看過前面的文章才成立)。之所以獵人和農夫的看法會有差異是因為著眼點的不同。
空值例外
這種二分法和另一個熟悉的傳統太極陰陽的二分法在表達上不太一樣。但卻剛好可以解釋太極陰陽論裡有些難以理解的地方。第一、太極的二元論裡,要素是陰與陽,那太極是什麼東西?二是,太極為什麼生兩儀,兩儀為什麼生四象,四象為什麼生八卦。這些東西的概念有時很難以理解。
陰陽的學說來自於古人在大自然的觀察,最好體現的例子就是山陰和山陽,因為山有起伏,所以太陽同一時間只能照著其中一面。起伏的山丘就像人生的漣漪,這是大自然交互的必然道理。
但用剛剛的二分法來看,邏輯思路變成:山的起伏本來就在那邊,但因為有了太陽,所以才開始有山陰山陽;太陽是一個加入到系統裡的外在變因,山陰和山陽在變因還沒有加進來的時候,問題尚未釐清,狀態無法被分化;反之當問題產生出來的一瞬間,對立的狀態就同時發生。所以對這個系統而言,「太陽」和「山的起伏」才是它的兩個變數,並不是山陰和山陽。
用山的起伏比喻是一個族群內部本來個體就存有的特徵,太陽就是那個加入的外部壓力。當壓力進入時,山陰和山陽自動兩邊站,也不可能有小三來干擾。試著用電腦程式的角度來解說,我們把電腦系統比擬成人類的社會、或是動物的族群:電腦有個很好反映出二元論的實現,就是布林值(Boolean)的變數型態。布林值只有「真」(True)和「假」(False)兩個狀態,程式裡的比較運算式會回傳一個布林值,提供陳述句 if 決策。當運算式結果為真時,代表條件成立,程式進入 if 區段執行;反之為假時,條件不成立,程式不會進入 if 區段執行:
if (a == b) { // a 等於 b 時結果為真,此段落的程式將被執行 }
但在操作布林值的所有工程師都曾經有個困擾:「要是這個變數是空值(Null)怎麼辦」(空值代表該變數這個容器內是空的;也就是布林值型態的變數若為空,它既不是真也不是假,而是根本什麼東西都都沒有)?每次要使用布林值型態的變數,都要捕捉例外或是先檢查該變數是否為空值才能繼續使用。那這樣明顯地不能把變數當成只有兩個狀態而是三個狀態?!事實上遭遇這樣的問題時已知的妥當方法是:將真和假視為系統的初始角色,而該變數是否為空值,或甚至尚未宣告(Undefined;電腦程式的變數在使用前都必須要先宣告其名稱和型態。若呼叫了尚未宣告的變數,程式會出錯,或稱拋出一個例外)則需要額外的處理機制。
將該變數可能為空值或未宣告的情況視同於前面所述,壓力發生的情況。當檢查空值時,只處理變數是否為空值的問題;當檢查是否未宣告時,只處理變數是否未宣告的問題;等到該兩種壓力都排除了以後,最後才處理變數為真或假的問題。撰寫程式者不應該把變數在未宣告、空值、真、假四個情況都視為等價。該段處理的程式碼大致上如下:
if (variable is defined ) { if (variable is not null ) { if (variable == true ) { // 執行條件為真的程式碼 } else if (variable == false ) { // 執行條件為假的程式碼 } } else { // 拋出空例外的錯誤 throw new VariableNullException(); } } else { // 拋出未定義例外的錯誤 throw new VariableUndefinedException(); }
你的程式碼最內頭的是處理原始角色—真與假的程式碼,然後在外再包一層空值的判斷處理第一個外部問題,最後在外面再包一層未宣告處理,處理第二個外部問題。等到下次要再處理布林值變數,該段程式就可以模組化重覆使用,符合一個禮的規範應用。
太極的陰與陽
因此現在描述族群遭遇壓力產生分化的問題,決定採用的是類似康德的理論與實踐的二元論,在擴充後漸進式地套用更多的現象。過去太極中的陰與陽是兩個已經分化的「靜態」的元素,這裡的二元是一種動態的元素。讀者可以當它是理論與實踐的對立、理性與經驗的對立、過去與未來的對立、甚至更是趨同與趨異的對立。前者是收斂的,後者是發散的,一旦決定了道路,在系統裡的個體就會依照自己的角色重新佈署。在過去的角度重畫出來的太極陰陽二進位樹(Binary Tree)圖形長這樣:
新的視角下,太極中陰與陽的關係應該將是如此:
這兩個圖之間的差異可能不太好辨別?重點是差在樹的「根」(或說太極)的分枝不是分叉的,而是被繼承的。太極的概念可以被解說成一個有陰有陽的狀態二重體,若說太極可以分出陰陽,那它當然就是由陰和陽組成的。但說他是灰色卻不一定準確,因為變因尚未加入,系統尚未分化,黑【陽】、白【陰】、灰這些特徵都不可能被觀察出來。只有當某人持有外在壓力的立場然後去觀察它,才能辨出誰陰誰陽。再者太極之下的節點(包括太陽、少陰、太陰、少陽等等)是一種太極與壓力交錯作用後的靜態副產物。當系統開始加入變因,太極開始分支(為什麼要生兩儀?是因為遭遇上了變因)。
當兩儀被誕生下來後,才是兩個靜態、三度空間的產物。這裡若比喻陽是1,陰是0,那麼當「陽」遭遇第二個壓力時,就產生第二組1與0附加在「陽」的基礎狀態之上,產生太陽11與少陰10;再接著遭遇第三、第四個壓力時,卦象不斷地向下成長。這裡視二進位樹是個四度空間的模型,隨著時間推演,雖然變因不斷地被加入,不斷地有靜態產物產出,但原始的太極狀態還是一直被繼承下來。圖裡的兩個元素不是靜態的圓點,而是一個選擇,兩條道路,因此這樣二元論就能同時用來解說陰陽與趨同趨異的對立情形。
林奈的分類樹
這個新的圖筆者故意畫的就像演化學上的生物演化樹一樣。生物的演化推手就在於環境加入的壓力為變因,產生去適應與不去適應的兩種方向。雖然人類經過幾百萬年演化誕生出來了,但原初的藻類與原蟲依然同時生存在地球上、存在於演化樹上的兩個極端的頂點上。演化樹的典型概念始於林奈的生物分類學。
林先生對於這門學科最大的貢獻就是建立了雙名制。他首先將研究對象分為動物、植物與礦物三界。每一界下再分門、門下分綱、網下分目、分屬,直到最細的分類-種
[2] 。每一個生物的學名都由一個屬名與種名所組成,透過生物的屬名可以再向上連結,使得每一個生物在分類裡都有一個自己的歸屬。這個分類法不但相當地科學,也很直覺、人性化。科學的地方在於他把生物相同的地方用屬名集合起來,再利用種名來區分同屬內的生物不同的地方。因此讓生物分類學變成一門研究生物相異與相同的學問,後代的生物學家更容易去研究生物之間的親屬關係,進而催生了生物演化的概念。
好比黑猩猩的學名“Pan troglodytes”,“Pan”乃是黑猩猩屬、troglodytes 則是種名,為穴居者的意思。同為黑猩猩屬的還有巴諾布猿“Pan paniscus”,paniscus 是嬌小的意思,但它與黑猩猩則共用“Pan”這個屬名,表示出它們之間的共同特色。
該命名法人性化的一面就在於這個命名法與人類的姓名也有異曲同工之效-屬名就像是人的姓,種名就像是人的名。姓氏可以讓別人知道你來自哪個家族,而名字又可以區分出這個家族之下的枝葉。然而林先生當時對於生物演化一無所知,他認為所有物種都是固定的。但後續如拉馬克等的生物學家在他的分類樹中發現了生物演化的規律,才進而誕生了演化的概念。筆者把生物演化樹中的人類比喻成八卦圖裡的乾卦,原蟲與藻類比喻成坤卦;人類就像是隨著時間的推演,在每次的外部壓力入侵後都能適應它並保留新特徵下來的孩子;而原蟲與藻類就是每次都選擇了保留固有特徵的孩子。彼此個體的功能全然不同、生命策略也不同。
達爾文的追隨者、德國的生物學家恩斯特(Ernst Heinrich Philipp August Haeckel)在著作《人的演化》(The Evolution of Man)中的生命樹。PHOTOGRAPHY BY MICHAEL NICHOLSON/CORBIS/GETTY
天使與惡魔
聖經裡的頭一句-上帝說:『要有光』。說明太陽光照射的益處對於這個世界上的生物而言是具有普世價值。或說引力雖然也是一種對生物體有普世價值的物理性質,但是生物只要是住在地球上,他就無法跳脫引力的約束,故當引力介入生物圈時,生物圈很難會發散出「能適應地心引力的」與「不能適應地心引力的」兩個物種。而光就因為地球自轉的緣故(理應還有海洋深淺的緣故。生物會因生活在海洋裡深淺度的不同而接受到不同的光照程度),介入生物圈時才有契機成為一種「天擇要素」。人類雖然之於植物這樣可以直接利用太陽能的物種來說,與光還不是最親密的,但還是可以把光當成是地球上所有生物最早期的一個外部壓力。當光介入時,生命體就會因為接受光的有或無,開始發散。
順便一提,網路上盛傳著一個關於愛因斯坦小時候的偽故事,故事裡說當他小時候上課時,與老師爭辯「光」與「暗」是無法對立的,因為光明是有光通過的地方,而黑暗的地方卻什麼都沒有。
故事雖然是假的,但概念卻可以拿來引申。確實光和暗是無法對立的,從這個系統去看,光是屬於一個外部壓力,而暗是屬於在壓力之下角色分化後的一個狀態。本質上就不能對等地比較。準確一點應該說是「光的受惠者」與「光的未受惠者」的對立。這種光與暗的對立相傳是從人類最早的宗教之一、波斯的祆教裡傳承下來的概念。祆教的光之神阿胡拉(Ahura Mazda)與暗之神安格拉(Angra Mainyu)進行永無止盡的鬥爭。在這場對立中,人類因為受到光的恩惠,所以必須站在光明的這一方(要不然那得顯得多忘恩負義啊?!)。因此阿胡拉被稱為善神,安格拉被稱為惡神。後來祆教隨著波期帝國的擴大而影響了整個中東地區的宗教,西方文明多半也繼承到了這種思想,概念上卻被後世人擴充的太大了。天主教的天使與惡魔就是這種概念的延伸。但亞理斯多德也很早就在他的哲學中做了理性的邏輯思維,這種對立單單只要理解是地球上無窮止盡的白畫與黑夜就罷了。
然而筆者故意將生物演化的概念牽扯進來,那就有人會開始斷言農夫不是比獵人更優越?獵人往農夫發展的道路一定是必然?這是個大哉問,農夫可以自己選擇當農夫或獵人,也許這方面的意義上來說是比較優越,但今天如果社會一直持續進行分工,農夫會因為不蔽惡而把時間與精力全部投入在解決務農所需要面臨的問題,說不定哪一天農夫就忘了怎麼回去當獵人了。
這其實就要看你相不相信生物的演化是趨近於優越的迷思。這著實很像人類從阿米巴原蟲般的單細胞生物不斷的演化過來一樣,阿米巴原蟲卻會覺得人類跟他是一樣的,為何?人類只不過是一大堆細胞的組合而已,以阿米巴的角度來說牠根本無需理解人類在多個器官之間的協調能力,牠自己一個單細胞的功能本身已是完善的,根本不需要其他細胞的協助就能自己存活,那身為人類是有哪點比較優秀?人類可以破壞原蟲的棲地來消滅牠們,但原蟲也可以讓人類生病來消滅我們。但人類確實已經能夠透過各細胞之間的組合,發揮更多的功能。比如說我們可以把自己推上外太空,但原蟲就不行。站在保留生物多樣性的觀點上兩者是一樣的。我們唯一可以確定的是以人體為系統而言,存在著比原蟲更多樣化的特徵或功能,但原蟲的個體只存在著較為單一的功能。
本位主義讓我們以為不斷的趨異顯然是有用處的,但無法解釋為什麼我們還需要趨同行為。這個問題一樣指回禮義廉恥裡模型的運作原理:生物會在特定的環境條件下需要趨同,而趨異也不是可以一股腦的一直不斷的趨異。恥階段的趨同就像是去收斂過份發散的行為一樣。因為過份的發散會使族群重新面臨困境,使其只能以最低限度的情況保留下新功能/新角色。比如上面農夫與獵人的例子裡,如果農夫的收入沒有這麼理想,當第二位農夫堅持想投入工作時,瞬間兩個農夫都會無法活到隔年秋天,這時兩個農夫都必須要有其他選擇才行。而未來農夫的職業就只能另尋其他妥當的時機再重新出發。這就是在趨異後再度趨同的意義所在。
[1] 另一個版本為 "In theory, there is no difference between theory and practice. In practice, there is"。其實該句並不確定是否為愛因斯所說。它最早來自於《耶魯文學雜誌》(Yale Literary Magazine)裡,一篇討論哲學裡理論與實踐關係的文章,作者為班傑明(Benjamin Brewster)。然而在找的到的資料裡,一封 1996 年的網路論壇卻標注此句名言來自於另一名大物理學家費曼。
https://quoteinvestigator.com/2018/04/14/theory/ 。
[2] 林奈一開始只有將生物分類的層級分為六類-界 (Kingdom)、門 (Phyla/Division)、綱 (Class)、目 (Order)、屬 (Genus)、種 (Species)。並不是現在人所知的界、門、綱、目、科、屬、種。而且由於生物學一直在進步,遺傳基因學與分子生物學能夠準確地分析物種之間的血源,因此現在還很了很多細項的分類,如亞綱 (Subclass)、上目 (Hyperorder)等。雖然不是每一個階層都有相對應的擴充,但每一個生物都至少在主要的七個階層上會有歸屬。