電腦語言的禪學

發佈日期:2020/11/03

新增網頁1

圖說:賈伯斯。林一平繪

賈伯斯(Steven Paul Jobs;1955-2011;上圖)習佛,影響他的資通訊設計理念。學習電腦語言就像參禪學佛,要學精、學深並不容易。如果老師能深入,無法淺出,悟性不高的學生難學會。「釋迦拈花,迦葉微笑」意境,凡夫俗子的悟性辦不到。我在《大橋驟雨》書中曾提到的幾點電腦程式指引有相關禪學的一些看法:

明講好過暗喻,平鋪勝於層疊。禪宗不立文字,採用以心傳心的暗喻方式,不易實踐。於是惠洪詩禪開創「文字禪」,讓暗喻「淺出」為明示,希望普羅大眾易懂。蘇東坡是掌握「文字禪」的高手,詩作透露易懂的禪機,若改寫電腦程式,一定是一位高手。

簡潔者為上,複雜者次之,繁澀者為下。蘇東坡引用典故左右逢源,理念簡潔敘明。不少人妄用「文字禪」,如同葛藤之蔓延交錯,變成「葛藤禪」。

特例難免,但不可超越原則,務求純淨,亦應切合實際。有個老和尚到溪邊,遇到婦人懇求背她過溪。老和尚答應。小和尚不解老和尚為何犯了男女授受不親之戒。老和尚笑說:「我已在岸邊將那女子放下了,你的心為何還不放下呢?」權宜變通,切合實際,其特例並未超越原則。

青原惟信禪師說:「老僧三十年前未參禪時,見山是山,見水是水。及至後來,親見知識,有個入處,見山不是山,見水不是水。而今得個休歇處,依前見山又是山,見水又是水。」我使用第一代的電腦語言時,功能有限,影響程式撰寫思惟,寫出來的程式雖然「明講」(Explicit),卻很複雜、繁澀,是「見山是山,見水是水」的粗淺境界。第二代的電腦語言提供遞迴及模組化的功能,我輩見獵心喜,寫程式時難免賣弄技巧,以暗喻、層疊為時尚,是為「見山不是山,見水不是水」的境界。直到今日,我撰寫程式累積的經驗已能反璞歸真,感受到「見山又是山,見水又是水」的境界。蘇東坡詩云:「橫看成嶺側成峰,遠近高低各不同;不識廬山真面目,只緣身在此山。」想看清楚事物的真相與全貌,必須超越狹小的範圍,擺脫主觀成見。參禪如此,電腦程式的訓練亦如此。

本文章轉載自人間福報  / 林一平