OpenVanilla是一套跨平台的文字輸入法框架 (text input method framework),除了在 Mac OS X 平台上擁有眾多使用者外,經由社群開發者的群策群力,目前亦有 X Window 版和剛開始發展的 Windows 版。這套原本是為了解決 Mac OS X 文字處理問題的輸入法框架,目前已經發展出超過二十種輸入法,對於有特殊文字符號需求的跨平台使用者來說是最佳的解決方案。
◎ 開發源起
因為一個想要讓輸入法變得更順己意的念頭,開啟了 OpenVanilla 的誕生。OpenVanilla 的創始者 lukhnos 表示,由於剛開始在使用 Mac 時,發現 Mac 上的傳統注音沒有自己慣用的倚天排列,但又適應不了 Mac 上的注音輸入,非常不便,便開始展開「自力救濟」,透過朋友間的討論詢問,發現 Apple 上有套輸入法的範例程式叫 BasicInputMethod,熱愛寫程式、但是有很長一段時間沒碰的 lukhnos 於是耐心從最基本的追蹤 (trace) 程式碼開始,並利用了同樣開放源碼的 xcin 專案中的注音輸入法表格,開始撰寫最初的香草輸入法。
香草注音輸入法釋出後開始受到社群開發者的注意,接著後來成為 OpenVanilla 主要成員的 mjhsieh 問 lukhnos 可否增加他常使用的倉頡輸入法,因為這套輸入法在 Mac 上用起來也不很順手,於是 lukhnos 依照香草注音的開發模式、寫出了香草倉頡輸入法,並將以上的輸入法整合成為香草輸入法 (VanillaInput) 專案。由於新增了倉頡輸入法,因此也吸引了更多使用者試用,計畫也因為受到使用者的回報而日益精進,不停進行小幅更新。
◎ OpenVanilla 誕生
面對著日益增加的需求,lukhnos 一方面感到開心,另一方面也在思考更新香草輸入法的軟體架構以因應日後需求,但是架構性的東西,需要慎重思考。在 gugod、audrey、zonble 等熱心的社群開發者協助下,香草輸入法重新架構,參考 xcin 在 UNIX 上以 "shared library" 方式達到可外掛模組的功能、並解決 encoding 問題,緊接著社群內另一套著名的酷音輸入法 OS X 版開發者 gugod 也把酷音輸入法移植到新的架構下,一套嶄新的 OpenVanilla 輸入法與文字處理架構儼然形成,接著其他的 OpenVanilla 核心開發者亦持續不停加入各式各樣的輸入法。
對 OpenVanilla 九位核心開發者而言,OpenVanilla 的開發不但可以趁機了解 OS X 的開發環境與工具,更像是透過 OpenVanilla 這樣的框架挑戰「輸入法的極限」。透過 gugod 的協助,OpenVanilla增加 makefile 架構後加速了輸入法種類的開發,緊接著各式各樣特殊的輸入法與功能如 ezbasic、PHP 輸入法 (OVIMPHP)、簡繁轉換等都紛紛加入 OpenVanilla 作為「實驗」,透過這種實驗性濃重的過程,開發團隊也可以順便「練功」,提升自己在 OS X 上的開發能力,然後再將學到的新技巧應用到 OpenVanilla 上。
OpenVanilla 在香草輸入法時期便已在中研院資訊所自由軟體鑄造場專案平台上進駐,提供專案瑕疵回報、待辦事項與檔案下載等功能,目前已經發展到 0.7.2 版,並採用 BSD 授權。OpenVanilla 從最常見的注音、倉頡,到特殊用途的日文、白話字 (POJ)、甚至藏文輸入模組等都包含在內,另外有正在實驗中的歐語拼字檢查模組,此外 OpenVanilla 並具有詞彙管理工具、簡繁轉換、字根反查、以及全形文字輸出、歐語智慧引號(可以打出成對的德文或法文用引號)等功能。
如果以上輸入法都不能滿足使用者的需求,使用者還可以透過泛用輸入法模組自行創建新的輸入法,或是將公開取得的輸入法資料表拷貝至資料目 錄中。Lukhons 解釋,泛用輸入法的出現可說是提供了一套開放的工具和方法(.cin格式的資料表格),讓使用者也可以參與其中,支持並成就了開放原始碼軟體開發模式的精 神。
◎ 使用者迴響
OpenVanilla 推出後受到使用者廣大迴響,大部分是 Mac 使用者,X Window 和 Windows 平台上的使用者也在逐漸增加中。從事 RD 工程師職務的 jiing 是 OpenVanilla 的忠實使用者,他說他把 Mac 買回家後第一件事便是去安裝 OpenVanilla 輸入法框架,玩玩一些奇特的輸入法(漁村輸入、藏文輸入),對於他最常用的香草倉頡時,剛開始用後發現自己習慣的很多字拆碼都是錯的,於是開始訂正自己的 拆字方式,起初是有些不習慣,但是一段時間過後開始適應,速度也逐漸加快,加上 Mac 的鍵盤觸感優於一般的 PC 鍵盤,所以到後來 jiing 幾乎所有的文書作業都在 Mac 上完成,同時亦會向他的朋友推薦 OpenVanilla。
由於 OpenVanilla 具有可自行創建、修改現有輸入法的特性,對於文字輸入有特別要求的文字工作者來說也非常有用。從事人文學科研究的 momizi,在課堂上聆聽教授演講時需要用她的 ibook 做筆記,但身為倉頡使用者的她發現 Mac 上的倉頡與原有輸入習慣不同,感到非常痛苦,當時因緣際會接觸了 OpenVanilla 前身的香草倉頡,便立刻加入使用的行列,並根據使用經驗回報給開發者非常多寶貴意見。由於使用需求亦經常用到日文輸入,momizi 在開發者 gugod 的協助下,貢獻了 OpenVanilla 最早的日文輸入法表格(詳請參考本期 [源碼心得])。
◎ OpenVanilla 未來發展
關於 OpenVanilla 計畫的下一步,lukhons 表示,由於 OV 的開發團隊主要都是 Mac OS X 的使用者,而且都是自由貢獻,故未來 OV 短期內的功能開發都還是聚焦在 Mac OS X 版的功能上,「先以解決實際使用問題、讓大家能從開發或使用中獲得樂趣為主要方向」,其 他作業平台版本的 OV 發展就要看相關計劃開發者的貢獻度而定。但,lukhons 也不諱言,從個人角度來看,如果 OV 這樣的計畫要持續壯 大,「遲早會出現一堆『不好玩,但是得做』的東西」,從過去許多開放源碼專案的經驗可知,開發者此時必須要朝組織化的方向來思考了。
◎ 結語
Lukhnos 當初會為計畫命名「香草」,就是取其簡單樸素之意,然而最單純的東西往往也最容易廣為使用及流傳,OpenVanilla 從一個簡單但實際的解決方案開始,不但解決 lukhnos 的困難,同時也為眾多具有相同困擾的使用者解決問題,因而能在兩三年的時間內持續受到大家的喜愛,這也使得 OpenVanilla 計畫成為國內熱門的自由軟體專案之一。