Skip to content

山景答問

date: 2016-04-14 04:44:00

問與答

——「RIME」這個名字,還有「中州韻」「小狼毫」和「鼠鬚管」這些有趣的稱呼都是怎麼想出來的呢?方便的話可否講講這裏面的故事?

——不起個好名,寫碼興致索然。

原題:https://rime.im/discuss/#comment-2620725368

立意

本項目的立意是:造一架通用的中文輸入法平臺,使得各種音韻方言都可以用來高效地輸入中文(目標是支持用戶自定義的音碼,結果因爲用到相似的技術,形碼也順便支持了)。於是起了「Rime」這個名字。

我以爲「中州韻」這個名詞會比「廣韻」「切韻」「平水韻」等更廣爲人知,而事實是現在很多人並不學寫格律詩也不聽戲了。 不過這名字裏面還包含一層意思:不同於那些朝廷頒行的用來定義「標準音」的韻書,如今各種地方戲曲中「中州韻」只是一個象徵着「正音」的概念;曾經的標準語音,經過漫長歷史,在不同曲種中已經演化出衆多的「方言」;地方戲的唱家,念唱都以各自傳承下來的「中州韻」爲準。 有點兒意思。很貼近拙作所主張的,要做一件人性化的工具。我相信,以母語爲拼音輸入的標準音會成就更自然、更生動的表達。

二一個選取這個名字的正當理由爲,該軟件最初是在中原設計和創作的,故名「中州」; 英文、法文之「 rime 」譯爲「韻」,故名「韻」。

重命名

又則西洋的自由軟件命名,流行「GNU」式的遞歸縮寫體,不才我於是放棄了剛纔起好的名字「Rime」,重新造一個時髦的。

輸入法慣稱「IME」,因此要遞歸縮寫,格式爲「某IME」;其中「某」爲「某IME」這個單詞的首字母。如果所用之「某」只滿足遞歸縮寫卻不是有意義的單詞,那也不夠高明。所以可代入的不過「dime, lime, mime, rime, time」數例而已。時下另有一案桌輸入法平臺名曰「LIME」,大概命名屬同一體裁。

根據本項目的立意,從中選取「rime」的首字母「R」代入既定格式,即得「RIME」,全稱「Rime Input Method Engine」。巧合得很,竟然又用回了原來取的名字。(我笑話講得好嘛:)

再把英文全稱譯爲中文——中文輸入法怎能沒有中文名吶——稱做「中州韻輸入法引擎」。所謂「引擎」,乃音譯「engine」一詞。該輸入法程序設計爲,由數據(用戶定義的輸入方案)驅動彼此相連接的組件,處理輸入法的數據流。彷彿一部實體機械引擎,是用戶介面之下,爲工具運行提供動力的部分。

定位

說到這裏,Rime 究竟是啥?發起這個項目,主旨是造一副定製輸入法的框架。其目標用戶是無輸入法可用、需要自製輸入法的人——具體情況可能是有困難通過學習掌握時下流行的輸入法,需要基於已有的知識來創造(比如利用「母語」這項已習得技能);也可能是長期使用的小衆輸入法已無人維護,需要自己動手升級、移植軟件;還包括一直在遷就一件不合適的工具而不自知,需要藉助更靈活的工具發現和創造屬於自己的習慣用法。

總結住以上討論,Rime 是 小衆軟件。他存在的意義,是填補輸入法軟件的空缺:號稱力圖讓所有用戶輸入更簡單、更有效率的主流輸入法軟件未能做到滿足 所有 用戶的需求——因爲其做法是把爲大多數人所使用的工具打磨成其設想中更符合用戶期望的模樣,這也許照顧不到輸入需求與衆不同的少數用戶。 回想中文輸入法曾經萬「碼」奔騰的時代,我等可瞭解到兩件事實:由於目標文字和輸入設備不存在簡明的對應關係,中文輸入法無法迴避建立一套中間編碼所帶來的複雜性;在爲衆多漢字編碼的嘗試中,有巨大的想象空間,並且有人樂於從事這看似無盡的探索。 沒有任何一種現存的輸入法可爲中文輸入的難題蓋棺定論,或許在輸入媒介不發生重大變革的條件下,碼家力求改進和創新的努力永不會終結。輸入法的發展,不能僅僅指望業界在現有解決方案上的技術深耕,還應有簡易且靈活的工具幫助更廣範圍的參與者探索新方向和新技術。

你們跑題

離譜的是,難道 Rime 在其核心目標之外表現出什麼優秀的素質? (懷疑肇端於 K.C.P. 神嚴重誤導輿論……報導有偏差誰來負責) 很多用戶使用 Rime 竟是出於不在算計之中的理由,並且對某些方面的品質有更高的追求。

作爲一款開源軟件,在尚未形成成熟社區、不具備足夠高參與度和一定規模開發團隊、而目前資源極爲有限的條件下,在某個獨立方向上過多地投入,會不斷使項目偏離其初始目標。

例如平臺支持以及針對應用的兼容性,實乃一項無止境且無比複雜的工作。 與主流輸入法相比,其意義對 Rime 而言是不同的: 如果強調輸入法的兼容性,用戶已經有多種更好的選擇,Rime 未能在用戶關注的方面提供獨特的價值; 所有投入都只不過在重複勞動、解決前人解決過的問題,而非承擔起那些長期被業界忽視、亟需有所投入的任務; 並且還會無端地加入與已有成熟產品的競爭,而失去與其他產品形成補充的積極意義。

我策

因此在這些問題上採取的策略是,選做其中爲實現最基本的可用性而不得不完成的部分,用最小的成本保證其他主要工作得以繼續展開。 例如 ibus-rime 只是將引擎植入 IBus 輸入法框架,甚至全盤採用 IBus 提供的基本選字介面。

設想中,「小狼毫」和「鼠鬚管」屬於先後將 Rime 移植到 Windows 和 Mac OS X 的兩個里程碑。 皆主張用較小成本讓輸入法引擎得以在這兩座平臺上運行。

文具

起初是借鑑他山用鳥獸或點心命名版本的習俗,爲兩者分別起了同屬知名文具系列的開發代號。 狼毫大約是用黃鼠狼的尾巴搓製的(吧),那就 weasel 好了;鼠鬚傳說很玄,姑且用 squirrel 好了。

然而在「小狼毫」實作中,發現 Windows 輸入法還怪麻煩的,最終需要自製一副輸入法前端框架,實現與系統 API 交互、進程間通信以及選字介面等,相當於 Linux 上 IBus 所起的作用。麻煩到這個前端框架不宜作爲一項平臺綁定留在 Rime 代碼中,而應該重新組織爲獨立的項目。

於是「小狼毫」就不再指稱 Rime 一個支持了新平臺的版本,而固化爲該 Windows 輸入法前端的項目名。 與其對應的是 librime 庫,純粹是跨平臺的輸入法引擎代碼。

鼠鬚管」亦然。名出歐陽修詩《奉送原甫侍讀出守永興》。

點名

還有一些數據項目和輸入方案的命名:

  • 東風破:一份 Rime 輸入方案集,得名於《韻畧易通》開篇的《早梅詩》,詩中明代官話二十字母排列爲「東風破早梅」
  • 八股文:一份詞彙表和簡陋的語言模型
  • 朙月拼音:與 Rime 同時開發的傳統字形的拼音輸入方案,爲致敬他山「昇陽拼音」,即 Mac / Linux 平臺的知名開源拼音輸入法 SunPinyin1
  • 地球拼音:地球人學的用的都是包括聲調的《漢語拼音》。打倒聲調失傳的(僞)全拼
  • 宮保拼音:利用標準 PC 鍵盤的多鍵並擊(chord)輸入法。以拼音輸入法爲基礎,融合了速錄鍵盤的操作方式。「宮保」爲「Combo」的音譯,可能包含着私廚祕製的意味

答語

不起個好名,寫碼興致索然。