Aug
10
2007

寫 plug-in 的辛酸你甘知

Apple 前幾天在 Special Event 上發表了 iMac、iLife 08 及 iWork 08。又是我要忙得焦頭爛額的時候了。怎麼說呢?

我花了不少功夫研究各式各樣的 plug-in 寫法,包括 iPhoto 的 Hypo Plug-in (雖然我一直覺得這寫得還不夠好)、PixPorter,Keynote 的 KeynoteKU,AlienBBS 的 MulderPatch,以及其他存在我電腦裡還不能上檯面的實驗性軟體。為何我如此執著於寫 plug-in 呢?在我申請 WWDC Scholarship 的文件中就有提到,我認為 plug-in 是非常有趣的東西。它可以達到某種程度的軟體重用性,甚至在不需要 source code 的情況下就可以幫別人的軟體修正錯誤或者新增功能,而且不用修改原本的程式擔心改壞掉,只要加掛在外面即可。這對於軟體朝方便好用演化很有幫助:人們不需要再重寫一套功能相仿,只是多加幾個自己習慣功能的軟體。

但是寫 plug-in 的缺點也不少。因為很多程式都沒有公開,甚至是根本沒有 plug-in 架構,我硬是用奇技淫巧掛上去就會很累,得想辦法逆向工程,而這個過程通常得花很多很多時間和精神。接下來是相容性,像這次 Apple 一出 iPhoto 08,搞不好我之前寫給 06 的 Hypo Plugin 會突然不相容(這也是 Hypo 團隊這幾天來急忙從美國帶 iLife 08 回來的原因——我得儘快支援新出的 iPhoto 08 呢。當天發表大約是台北時間凌晨兩點,居然有客戶兩點五十就寫信來問我們有沒有支援 iPhoto 08 了呢。別急,我們當然會支援,但是請給我們一段時間)。因為這種自己 hack 進去的方法,完全沒有承諾說將來不會變動,也許每出一個新版就得重新寫一次也說不定,實在很沒安全感。最後,寫 plug-in 就和破解軟體一樣沒什麼 credit。所以整件事情會變成又累又不能一勞永疫又沒有名聲,只有你把軟體改造成想要的樣子這件事值得安慰。

這次 Keynote 裡面的錄製功能,我以前也有寫過沒人用的 KeynoteKU 做同樣的事情啊。這次 Apple 直接把這個功能寫進去 Keynote 裡面,也代表了我的眼光正確,這功能的確很有用。可惜啊,又被 Apple 搶先了。Bye bye,KeynoteKU。

 
 

Write Concisely