程式不是寫給電腦看的

閱讀時間約 2 分鐘

有人說程式語言是為了與電腦進行溝通,但這在現代並不適用。軟體工程注重合作,而且現代電腦的高效能,使得我們更應該關注程式的可讀性。程式應該是寫給你的同事看而不是你的電腦。然而我對這個觀點的看法不太一樣。


我學習程式語言的動機並不是想要做什麼遊戲,而是單純覺得很有趣。除去國小自己寫過網頁的經歷,我接觸程式語言的契機是高中的電腦課,上過之後我就藉由課餘時間自己讀課本內容,但因為我是住宿生,平常沒辦法接觸電腦,我只好在紙上寫程式,並在腦裡執行程式。或許就是從這裡我與其他人對程式語言的想法就有點不一樣了。


跟自然語言一樣,我認為語言不是只拿來溝通,同時也是思考的媒介,我們的思考總是被語言所影響,對於程式語言更是如此。每個程式語言都有一個核心理念,使用不同的程式語言往往會傾向某種思考方法。例如:Python簡潔的語法讓我們更容易掌握更重要的程式邏輯。物件導向的程式語言把函式綁定到資料上,使我們更容易以物件的角度構造模型。泛型與介面讓我們能在不知道參數型別的情況下操作,提供了另一種抽象化資料行為的方法。


程式語言對我來說就像可以執行的數學,它可以幫助我為想法與理論建模,並實際地執行與運算。跟數學不同的是,數學常常是宣告式的(例如:向量空間是符合某8條規則的空間),程式往往是建構式的(例如:向量空間是將某個域的n-tuple加上一些加法乘法規則的擴展)。相對的,程式語言比起數學語言更「摸得著」,使用起來更有實感,因此我更喜歡使用程式描述想法。


事實上,程式語言的基底是範疇論,它是更為抽象的數學結構。寫程式本質上就是在證明命題,因此寫程式與算數學其實是一樣的。然而程式建構式的特性並不適合描述一些特性,只用數學也沒辦法將一些抽象概念與想法描述清楚,因此自然語言仍然是描述與定義一些抽象概念所必須的。自然語言的模糊性更能讓我們掌握一些難以捉摸的感覺與想法,而這種概括的語意反而更符合大腦的運作模式。這也是為什麼自然語言無法被取代的原因。總結來說,不論是程式語言、數學語言還是自然語言,都不只是用來溝通而已,而是能輔助我們思考的工具。

3會員
23內容數
這不是教你如何從物件導向到函數式編程的入門教程。我會深入探討物件導向與函數式編程的差異,並討論為什麼你應該使用函數式編程並徹底放棄物件導向。
留言0
查看全部
發表第一個留言支持創作者!