我今天被問到一個問題,「那我們還要學程式幹嘛?」
確實,我當下並沒有直接回答。如果人寫的東西能夠取代程式,那何必要存在程式這種東西呢?就如同以前教Socket的老師(研究領域是嵌入式系統)跟我說,物件也不過是將邏輯轉成比較接近人類,可是回歸到CPU都是一樣的,這點是千真萬確,那為什麼不寫比較接近CPU的語言?當時,我也無法問他為啥什麼都不寫組合語言,也無法反駁他說,那你為啥還要用C Compiler。
所以就如同現在我的工作上所接觸到的,讓我開始思考是不是描述語言會當道。我的同事們被教導,CPU已經很快了,所以不需要在Code上下太多功夫,只要思考設計,只要讓人好寫,只要有抽象概念即可,實做都可以是暴力法。反而我的Code被嫌說沒有可讀性,讓我也是無法反駁,所以我只好再說明上多多撰寫。
我其實不應該去將什麼事情都用二分法,但確實一個本來就沒有特定作法的事情,某人的作法到底好或是不好,也就無法定論。例如現在同事們的想法都是偏向,「可被描述的資料和程式結構」加上「簡單的程式邏輯」。而我的想法卻是在「可被描述的資料結構」加上「複雜的程式邏輯」。確實我的程式很複雜,可是也不需要使用者理解任何抽象觀念,只要資料即可。他們將程式邏輯變成描述,就必須理解他們的程式抽象觀念,到時候又是名詞一堆。加上我還聽到說,希望用程式去產生描述,總覺得好像哪裡錯了。
而我現在所贊同的道路,還是比較偏向將內部作法封裝起來,將系統的解釋都用現有平台的名詞去定義,或是運用簡單的知識,除非有必要,否則不創造新名詞。我相信使用者需要的不是彈性,那是開發者需要的。使用者需要的,還是完善的文件,範例,諮詢,正確簡單,漂亮炫麗的UI。如果真的要用XML進行邏輯描述,那應該是相當泛用的,不然就讓人會有半調子的感覺。