我覺得寫程式很好
有些人似乎不覺得寫程式本身是一種可以供一般人使用的介面。我的意思是說,例如你想刪除某個檔案,正常來講你會在檔案管理器中選取檔案,然後按下刪除鍵。現在也有人認為,可以直接用自然語言對 AI 說:「請刪除某檔案。」但是其實你也可以寫程式對電腦說⸺以 Python 為例⸺「os.remove("某檔案")」。這種程式介面不是只有專業的程式設計師可以使用,一般的使用者也可以使用啊。
事實上 scripting 類別的程式語言就是為了這樣的用途所設計的。例如很多人也知道在命令列介面中,可以輸入類似「rm 某檔案」這樣的指令來刪除檔案。不過我想說的東西不是指令。嚴格說起來,雖然使用命令列的時候,你是在使用程式語言沒錯,但是下指令不代表你在寫程式。我所說的程式(program),就如如同他字面上的意思,指的是某種事先安排好的行程規劃。例如:假設你在寫一些文章的草稿,之後把他們輸出成網頁發布。你不會想每次寫完文章之後都要重複對電腦說:「請把草稿檔案裡的標題變成網頁裡的標題,然後把這些標點符號替換成不同字元……」你應該會想把這些工作安排成一個固定的行程,叫他每次都照做,這個行程就是所謂的程式。
這種電腦的行程,其實就跟其他種類的行程沒有什麼兩樣。比方說旅遊的時候,當然你也可以完全不事先定好行程,而是臨時買機票、到當地才開始找旅館之類的,但是如果能事先規劃好,尤其是如果你常常都固定要去一樣的地方,就每次都用一樣的行程,這樣當然比較方便。
但是反過來說,如果說所有旅遊的行程,一定非得要找旅行社辦理不可,那應該也不太合理。畢竟買票、訂房、規劃行程並不是什麼天大的難事,很多普通人也是可以自己自助旅行的。現在很多談論 AI 的人都會說:「以後只要跟他說你想去旅遊,AI 就會幫你規劃行程,是不是很方便呢?」但是老實說,自己規劃行程又不是什麼大不了的事。對,如果你是一家企業的員工,負責規劃上百人不同的行程,也許那很複雜。如果你只是自己偶爾去旅遊一下,應該不太會有人說「太難了,我又不是觀光餐飲科畢業的」吧?
這麼說可能有點太看不起、對不起專業的旅遊工作者,但是從根本上來說,所謂的規劃行程,基本上就是「把你想去的地方寫下來」而已吧。同樣的道理,所謂的寫程式,就是把你想叫電腦做的事情寫下來而已。如果你曾經想「啊,明天來做一些事情好了」,然後把那些計畫寫下來照著做,那我應該要恭喜你:你早在那個時候就是一個程式設計師了。只不過你設計的是你自己生活的程式,不是電腦程式。
可能會有人想抗議,覺得我用了太多不恰當的類比。老實說我也有同感。但是那又如何呢?例如有人可能會說:「電腦程式在編寫上有很多特定的規則,跟一般的行程規劃不太一樣。」可是其實就連想著「啊,明天來做一些事情好了」而寫下來的生活計畫,也是有特定規則的啊。像是有的時候字寫得太潦草,結果隔天再看的時候,發現看不懂自己在寫什麼。老實說現在這篇文章寫到這裡,我也有點看不懂自己在寫什麼了。
我想我想說的可能是這樣:沒有人規定普通人在用電腦的時候只能用別人幫他寫好的程式,其實每個人都可以自己動手寫程式。這沒有什麼奇怪的。事實上不只是沒人規定不能這樣用,應該說電腦本來就是設計讓人這樣用的。甚至如果寫程式真的如我前面說的,在本質上就是「把你想叫電腦做的事情寫下來」而已的話,那麼如果你不會寫程式,如果你連想叫電腦做的事情是什麼都說不出來,是否表示其實你並不清楚你想要的到底是什麼?這聽起來難道不是一件很奇怪、甚至很危險的事情嗎?
當然,我並不是說所有程式都要自己寫。如果有人說「我覺得自助旅行很好」,他應該也不是認為一個人應該自己從頭做一架飛機、自己蓋一棟旅館⸺當然如果你有那個能力的話也很好,其實我很納悶為什麼那些超級有錢人不多做一些這種事情。至少在我的刻板印象中,他們反而更喜歡花錢把這種事情丟給別人,而不是自己打造想要的東西,甚至他們看起來好像常常也不知道自己想要的東西是什麼。也許不浪費時間寫自己的程式,就是他們能那麼有錢的原因吧。