皇帝的舊衣

Fermat’s Library 觸發讀了 C. A. R. Hoare 這篇論文[1],其中 最常被引用的一段話應該是:

I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.

The first method is far more difficult.

「我斷定軟體設計有兩種方式:第一種是非常簡單,所以明顯的沒有缺點。另一種是非常複 雜,所以沒有明顯的缺點。前者困難多了。」

最後的小故事也很有意思,簡中有翻譯但實在不好,試譯如下。

皇帝的舊衣

很久以前,有位皇帝非常喜歡衣服,把所有錢都花在買衣服上。他沒去管士兵、赴宴、或審 判等麻煩事。若是提到別位皇帝或國王,人們可能會說「他正出席議會」,但提到這位皇帝, 人們總是說「他在更衣室裡」。而他真的都在裡面。在一次不幸的場合,他因被騙而裸體示 人,臣民覺得好笑,而皇帝非常懊悔。於是他決定再也不離開王座,且為了避免再次裸體, 他規定往後每件新衣服只能覆蓋在原有的衣服上。

在首都這大城中,時間快樂地過去了。部長與大臣、織工與裁縫、訪客與臣民、縫工與繡工, 為了各類事務在王座室進進出出,而他們全都大聲讚嘆:「皇帝的盛裝真是華麗!」

有一天,皇帝最老也最忠誠的部長聽說有位出類拔萃的裁縫,受教於一間古老的高等針線術 學府,他發展出一種新的抽象刺繡藝術,其針腳如此精細,以致沒人能分辨到底存不存在。 於是部長想:這繡法一定非常傑出,若能聯絡上這位裁縫擔任顧問,我們就能將皇帝裝飾的 炫耀程度提升到一個新高,世界都會認可他是自古以來最偉大的皇帝。

所以這位誠實的老部長花了一大筆錢,把裁縫請來。裁縫被帶到王座室,在那裡他對如今已 完全蓋住王座的華服致敬。大臣們渴望地等著他的建議。所以當他提出不要再增加更精細複 雜的刺繡潤飾,而是移除層層華麗衣飾,追求簡單優雅來代替複雜細節,你可以想像到大臣 們的震驚。他們交頭接耳:這裁縫並不是他自稱的專家,他的智慧已經被象牙塔中的長時間 研究搞混,無法了解現代皇帝的縫紉需求了。裁縫大聲爭辯了許久,說他的建議是合理的, 但大臣們聽不進去。最後,他接受了酬勞而回到象牙塔中。

直到此日之前,都無人揭露這故事的全部真相:在一個晴朗早晨,皇帝覺得很熱又無聊,於 是小心翼翼地從堆積如山的衣服下鑽出,現正在另一個故事中當個快樂的養豬人。而裁縫被 封為所有顧問的守護神,因為儘管他收了一大筆顧問費,卻從未成功說服客戶相信他的明悟: 他們的衣服下,沒有皇帝。

[1] Charles Antony Richard Hoare. 1981. The emperor’s old clothes. Commun. ACM 24, 2 (February 1981), 75-83. DOI=http://dx.doi.org/10.1145/358549.358561