在十六世紀,民眾把不可知的一切都歸於上帝的旨意。 為什麼榖物收成不好?都是上帝的旨意。 為什麼會發生大地震?都是上帝的旨意。 為什麼天體如此運行?都是上帝的旨意。 但是到了啟蒙時代,物理、化學、生物等開始發展,人類開始針對宇宙萬象尋求科學上的解釋。 這並不是說,人們都變成了無神論者,而是人類對於宇宙運行的方式,有了更深的理解。 -- 從 A 到 A+
同樣的,當我們不去研究任何方便功能其背後的運作機制,而是直接將之歸因於「動態語言」或「框架」所提供的方便性時,我們和十六世紀的民眾其實沒有什麼差別,等於承認自己的無知。
每次我們兩手一攤,說:「答案一定是語言或框架做的手腳了!」我們等於放棄了以科學方式探討原因的機會。
正因為只要生活過得好,我們就心滿意足,所以很少人擁有無與倫比的人生經歷。 -- 從 A 到 A+
朋友對上面的話提出質疑:瞭解「動態語言」或「框架」背後的機制當然是不錯,但並不是那麼必要。因為就算不懂怎麼製造,還是可以把高階語言把玩的很好。 對軟體工程師來說,比較直覺的學習順序,應該是熟悉這些外功後,理解到有些不足,才會去想辦法補足內功的部份。
我說:就如同在古代人們不知道為什麼天空會降下雨的時候,還是可以先學會蓋房子避雨。有了房子的遮蔽,感到安全的人們,又可以騰出心力來探究天空為什麼會降雨的問題。 了解「動態語言」或「框架」,行有餘力時也去了解「動態語言」或「框架」背後的機制,也許也可以讓我們寫出更好的程式碼。
弄出天氣預報的人,永遠不會是眼光停留在遮風避雨階段的人,或是想著將遮雨的房子蓋的又大又舒服的人(這只是種選擇,無關於好或不好)。這大概就是「從 A 到 A+」一書所說的「優秀是卓越之敵」的理念吧。