
第2章
程式的意義
用心體會,但不要思考!這就像用手指指向月亮,
如果將精神集中在手指,你將會錯過所有絕妙的榮耀。
—
李小龍
程式語言和以程式語言所編寫的程式,是我們作為軟體工程師工作的基礎。我們利用它
們向我們自己釐清複雜的想法,向彼此溝通那些想法,最重要的是在我們的電腦內部實
作那些想法。就如同人類社會沒有自然語言就無法運作,因此全球的程式設計者社群都
依賴程式語言來傳達並實作我們的想法,他們會以每個成功的程式作為基礎,然後再在
這些基礎建構下一層的想法。
程式設計者往往是現實的生物。我們學習新的程式語言常常是利用閱讀文件、依循教
程、研究現有的程式、亂改自己的簡單程式,而且不會過度考慮那些程式的意義。學習
的過程有時候很像就在不斷的摸索、嘗試錯誤:我們試著要檢視範例和文件來瞭解語
言,然後試著以它來編寫一些程式,接著這一切卻又煙消雲散,使得我們必須回頭再
試,一直到我們能夠統整大部分的工作。隨著電腦和電腦所支援的系統變得越來越複
雜,往往讓人將程式視為只能表示它們自己而且只是偶然可以運作的暗黑咒語。
然而電腦程式設計的關鍵並非
程式
,它的核心其實是
想法
。程式展現的是凍結的想
法、曾經存在程式設計者想像力裡的結構快照。程式的價值僅在於編寫,因為這樣才有
意義。因此,是什麼連接了程式碼及其意義?而我們該如何更具體的賦予程式意義,而
不只是嚷著『它只是做它所做的』?在本章,我們將檢視幾種技術,除了釐清電腦程式
的意義,並且也瞭解如何將那些死的快照變成活的。