創意 v.s. 基本功?關於李家同談 Turing 一文雜感

關於李家同教授(以下簡稱李)在聯合報專欄的這篇「如果 Turing 是中國人」。

時機上,李的文章刊登在 9 月 15 日,而英國首相剛在 9 月 10 日向 Turing 因其性傾向遭受的不人道待遇致歉。很自然地讀者會覺得這是應景之作,也會因此感到失望:英國談的是人道與歧視的問題,主角是計算科學的先驅。李教授恰好是國內電腦科學出身、以人文關懷著名的作家,照說是國內最有資格在這議題上多談談的,怎麼又談起產業了呢?我甚至會猜想這是在迴避,也許李教授有不願談同性戀的顧慮,因此自覺有責任寫寫 Turing,卻換了個角度。

但這麼說也許有欠公允。可能世事就是這麼不巧,李教授以前存在聯合報的稿剛剛好在這個時候刊出。即使是最近寫的,人家對這題目沒興趣,也不能強迫他非有興趣不可呀。我們僅就他的文章來談。

李伯伯講故事

文章開頭便說:「我們國家非常重視「創意」,好像我們國家萬事俱備,只欠創意。」結論大約是「我們的政府… 沒有鼓勵大家在基本技術上下功夫… 因為基本技術不夠高,而使這種創意永遠是紙上談兵。」

但這是篇令人困惑的文章。李把「創意」和「基本功夫」對立起來,指的分別是什麼?真有這種對立在嗎?這和 Turing 又有什麼關係?

回顧李之前的文章。在「你會設計放大器嗎」一文中,李說,「我國…很不在意基本功夫的。無論在機械、電機和化工,我們都不願意將基本功夫練好。」「如果我們成天注意非常高深的學問,而不注意是否有很好的基本技術,我們的研究都是紙上談兵而已。」在「核心科技是買不到的」一文中,李說:「很多人會寫字串比對的程式,但是大家可能忽略了字串比對牽涉到好多演算法上的高深學問。」

初次讀上述兩文時,我把「基本功夫」理解成「基礎科學」,或著泛指某種紮實的做學問態度。在這個假設下我是很贊同的。一些國家在應用科技上進步(甚至不用談「很應用」的應用,只談計算科學上的「應用),是因有充實的基礎研究為後盾。連字串比對都需要正規語言,而這恰是國內少強調的部份。我也曾「發願」,要好好學東西,把某些理論從最基礎之處學起,把一些編譯器原始碼好好看懂。這是我以為的「核心技術」。

但李在 15 日發表的文章中,如此談到 Turing 與 Colossus:

二次世界大戰期間,杜林向英國政府建言,說他會製造一架可以寫程式的電腦,而且可以用這部電腦破密碼,對於英國政府而言,此事非同小可,也立刻著手製造Colossus 電腦,這部電腦上的程式使英國可以破德國人的 Enigma 密碼。

這是一段過度簡化又錯誤百出的故事。且不談我不喜歡李那「跟小朋友說故事」的文風 — 姑且假設這是特意做出的風格。我同意講故事總是得講個抽象過的版本。而且我們不都說計算科學就是關於抽象的科學嗎。但好的抽象言簡意賅,壞的抽象不但失真,甚至淪為為迎合(「硬」合)主題而編故事。

李講的故事是: Turing 是個不世出的天才,有一天突然靈光一閃跑去跟英國政府說我會做電腦、會解密碼唷。這是李的「創意」。而天才雖有創意,還是要靠「優秀的工程師」「將他的理論用電子線路予以實現」。這是李的「基本功夫」。而結論是,所以,我們應該加強基本功夫。

Turing Machine 是哪臺 Machine?

我先插一個小抱怨:事實上,Turing 和 Colossus 的建造關係不大。推動 Colossus 的主要角色是數學家 Max Newman 和工程師 Tommy Flowers ,前者構思理論上的需求,後者設計製作,並參考了許多人的建議。Turing 參與設計的計算機器則包括了 bombe.

所以我們想到幾件事情,首先,Turing 不是單獨一個蹦出來的天才。他是團隊的一員。

再來,這麼多人設計製造過計算用的機器,為什麼 Turing 被稱做是電腦之父?當然不是因為第一台可程式的電腦 Colossus, 那不是他設計的,甚至在戰後多年都是機密。也不是因為他設計過、自己做或請由工程師做出來的任何一台機器。

是因為一台由他構思,但並未靠工程師去做出來、也沒有必要做出來的「機器」: Universal Turing machine.

身為電腦科學家的李教授不可能不知道這點呀。

創意 v.s 基本技術?

回到該文。李所謂「基本功夫」指的到底是什麼?如前所述,我原以為他泛指「紮實做學問」。那麼每門學問都有「基本功夫」。後經朋友提醒重看「你會設計放大器嗎」一文,發現另一種讀解:基本功夫指的是基本技術,也就是「電機工程」、「電子線路」、「設計電路的基本功夫」。再對照李教授的一篇演講,抱怨學生只會數位電路,不會類比電路,發現確有可能。

這又是另一番景象:某些領域是「基本功夫」,某些領域是「高深的學問」。大官只關心高深的學問,但我國「國情和先進國家不同,基本功夫不夠好」(參照你會設計放大器嗎)。似乎李教授近年來把興趣轉到了某些領域上,認為這些是邁向核心技術需要的基礎技術,我國欠缺的情況令他很擔心。這也是可以去理解的。

但李用 Turing 當主角講這個寓言。數學家 Turing 代表「創意」,而幫 Turing 製造電腦的工程師們代表「基本功夫」。中國沒有基本功夫,就算有 Turing 也做不出 Colossus。所以我們應該加強基本功夫。

讀者當然會問,反過來說,沒有 Turing 的構想也不會有 Colossus 呀,為什麼我們不需要開發創意?

為了避免這個問題,Turing 必須被描述成一個天才,偶然的天才,不可預期的天才。「大家都同意英國真幸運,有這麼一位極有創意的天才數學家。」天才大概是會不定期地、不可預料地蹦出來的,既然不可預測,我們還是先作好基本功夫好了。

這導向一個驚人的結論:電機工程是基本功,是需要政府投資的;而數理邏輯是天才、是「高深的學問」,我們國情不同,還是先別碰好了?

當然不是如此。二戰期間 Bletchley Park 有一整群學者與工程師一同工作,Turing 是其中之一。能培養出這麼多優秀的數學家,是基礎科學研究水到渠成的結果。這當然是需要多年投注資源的呀。

而另一方面,製造出實體計算機器需要的電機知識是「基本功夫」嗎?在二戰當時這可是「高深的學問」呢!二戰前的中國也許有人要說,還有這麼多百廢待興的事情正傷腦筋,去搞這種「高深的學問」做什麼?

如一位朋友(不知能否說出來?)所說的,如果李期望學生能有廣博的知識,電腦科學的學生也學一些電機,社會科學的學生也學一些電腦科學等等,這自然是好的。但另一方面,思考和實作不一定要在同一個單位裡發生,學問分工是不可避免的。把不同領域間的關係簡化為誰比較基本,誰是遙不可及的高深學問,這不該是李這種學者的格局。

這兩天的密集討論中,也有朋友提出這樣的推測:李的態度是對政府這幾年過度強調「創新」的反動。據說現在不管寫什麼計畫書都得跟「創新」掛勾,學校或研究單位也都陸續成立各種「創新」中心。李有意見的可能是奈米、基因等等「創新」科技。

也許如此,而李這篇文章只是一次引喻失義。否則,一個曾做過演算法和符號邏輯的學者到頭來說 Turing 的理論是天才的高深學問,先學電路設計才是務實,實在太令人匪夷所思了。

This entry was posted in 人物, 胡思亂想, 計算算計 and tagged . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

3 Comments