#E6E6E6 【VB】影音軟體 ExtraPlayer 發行版完成之隨寫 作者:吳文成

  完成 ExtraPlayer 發行版的同時,我也寫下了改版計劃:在以後的版本提供快速播放與慢速播放(即調整播放速度)的功能,提供 MP3 → WAV 與檢視 WAV 波形的功能( 理論上可以檢視任何音效的即時波形),提供合併 、分割與裁剪 WAV 檔案的功能 , 提供修復 MPG 檔案與 RM 檔案在播放時無法拖尋的問題。在某種興致勃勃與可完美性的驅使下,我其實想到更多的新功能,一套軟體的改版似乎是沒有終點的。心裡自問著:我真的要從哲學家改行做個程式設計師?還是我要識相地遠離作為程式設計師的那種辛苦生活?至於有多辛苦,隨便抓個程式設計師來問問就知道了。

   有網友寫信來問我 , ExtraPlayer 能不能切割 Midi 這類電子合成音樂的某一小段下來 。 其實在我的改版計劃裡,原本就想加入切割 Midi 檔案的功能,而 ExtraPlayer 的協同版也已經完成了這項功能,可是我更想要實現 Midi 檔案的合併與裁剪功能,而不僅僅是切割一小段下來而已 。 這裡的關鍵問題在於 Midi 檔案的合併是相當複雜的 , 牽涉到不同區段的 Midi Channel 與音色、音調、音序等等的搭配問題,如果我連帶寫一個 Midi 編曲介面,然後再配合我的影音標記功能 , 也許就可以實現 Midi 的分割、合併與裁剪全功能 , 就像是現在的 ExtraPlayer 簡單輕鬆地編輯 MP3 那樣
。嗯,一套軟體的改版似乎是沒有終點的,每次總可以想到什麼新穎的功能加進去,然而加入的新功能很有可能會導致軟體內部設計的大變動,如何將 Midi 編曲介面融入另一個介面(影音標記介面)就是一個例子。

  在偶然的機會,我與朋友談到,程式設計師的美學追求與藝術家的美學追求有什麼不同。程式設計師與藝術家同樣可以為了作品而焚膏繼晷、日夜顛倒,程式設計師與藝術家也同樣不確定自己能不能在期限內完成眼前的作品,往往(程式設計師)一個程序配置的不當,或是(藝術家)某個意象的差錯,就可能使得他們在懊惱的心情下重新再檢視與再調整整個作品。藝術家的考驗在於,如何捕捉稍縱即逝的意象,如何用有限與貼切的材料來摹臨心裡的形象。程式設計師的考驗是,如何在開發平台的相關限制下解決問題,如何在可靠性與效率上完成軟體週期。如果繼續談到程式設計師與藝術家的美學追求有什麼不同,那麼我們就很容易看到他們最根本的差異。藝術家的美學可以包容殘缺、多變或懸而未決的意象,但是程式設計師的美學卻是一個作品的可理解性(包括簡明性與良結構性)、正確性(包括符合預定的目標)與合理性(包括用戶端的介面適應性)

  程式設計師於是背負有更多的思辨挑戰。這一陣子,我既作畫也寫軟體,我似乎就深刻體會到這兩種美學的天差地別(儘管在生活型態與心境的考驗上,兩者是如此的相像!)。當我在作畫的時候,我可以刻意塗上斷裂、跳躍與難以解釋的顏料,只要當下的心像符合個我當下的意境即可
,但是程式設計師卻要考慮得更多,除了程序結構的思考之外,他還要考慮使用者可能怎麼操作,然後可能產生什麼功能性的問題──這裡的問題並不只是功能失效而已,還包括軟體是否合理回應了使用者的可能操作。測試與追溯功能失效的原因,與評估操作介面的回應機制是否合理等等,這些工作我們稱為「程序驗證」,或是我們常常說的「偵錯」,所以千萬不要以為程式設計師的「偵錯」工作就是所謂的找錯誤而已,即使沒有功能錯誤,但是只要所有可能的操作介面的回應機制不合理,程式設計師就會為此而「嗚呼哀哉」、「搥胸頓足」。難道程式設計師真的能夠一一追[[img src=talk/move.jpg height=279 width=250 align=left]]蹤與分析(介面的)屬性與方法的所有可能搭配?難道程式設計師真的可以實現完全的程序驗證?面對較具規模的軟體開發案,難道他們不會精神耗弱或精神分裂之類的嗎?這點倒是與藝術家很像,因為藝術家有不少都幾近精神耗弱與精神分裂。

  總之,我在精神耗弱與精神分裂之前,就已經完成了 ExtraPlayer 發行版。我在第一段裡提到,「在某種興致勃勃與可完美性的驅使下,一套軟體的改版似乎是沒有終點的」,於是
,我們就必須學會「適可而止」。在程式設計這條路上,我曾經是興致勃勃的,還記得我年輕的時候,還沒有自許為哲學家的時候,當時自己設計自然語言系統與人工智慧系統的那種雄心壯志。當時的我想要構造出電影《AI.人工智慧》裡的大衛——無疑的,這也是所有程式設計者最大、最終的夢想。直到哥德爾的不完備定理與丘奇-涂林的不可判定性定理規勸我們要適可而止,這才打斷了這個領域對於可完美性的那種企求。我相信藝術家的作品是可以具有完美性的
,但是程式設計這個領域卻與可完美性無緣,也就是說,程式設計師的美學永遠有一條界線,那些興致勃勃的程式設計師必須學習「適可而止」。回到現實面來看,程式設計師的實際生活也早已消磨了自身的心智與樂觀態度,在市場上,他美學裡的可理解性、正確性與合理性已經變成了市場消費的廉價品。程式設計師除了背負有更多的思辨挑戰,似乎,他骨子裡還有更多的哀怨。

可執行檔下載
瀏覽發行頁面
2005/03/24