Posts RSS Comments RSS  

從最近兩件自身的open source經驗談起

一整個七月,密集地經歷了兩件和open source有關係的事件。

先談比較近的一件經驗:我寫了一套供Mac OS X使用的「香草注音輸入法」,並且透過了OSSFOpen Foundry,持續著這套程式的開發、維護,甚至還因此促成了一個社群。一個月前,我做了重要決定,打算捨棄PC/Windows的環境,而轉換到Mac OS X平台上工作。一定程度上這代表了要移轉所有過去的工作流程及習慣,而所有的軟體工具也必須重新尋找、配置和熟習。在這過程中,馬上就碰到Mac OS X的中文輸入法不盡理想的問題。Apple所附的漢音輸入法有很多不如人意之處,於是我想到了在台灣Mac社群流通甚廣的SpaceChewing「酷音」輸入法。這是一套open source的輸入法,目前的原始碼維護群也是台灣open source社群的活躍人士。他們邀請大家一起參與改進這項輸入法的計劃。因為有開放的源始碼,以及公眾的討論環境及經驗傳承,使我很快地熟悉了在OS X上撰寫一套輸入法所需要的程式設計知識。很快地,我建立起了程式的核心,將之公佈於網路上,軟體很快就傳開,而各種測試報告和bug report紛紛出爐。這套程式在48小時之內就等於進入了穩定運轉的階段。如果沒有open source的模式及社群,我很難想像,這問題能怎麼解決,也許必須跟許多軟體廠商周旋,而把自己的命運交給他們,癡心地等待他們為我解決一個對他們來說不痛不癢、卻對我每日工作生活絕對有影響的需要吧。而,我自己的切身生活需要,其實也恰巧是許多人的需要(一套支援「倚天注音排列」的傳統、非智慧選字的注音輸入法)。透過open source的模式,我的軟體又可以很快地回饋給整個社群。我認為這整個過程不但是互利,甚至是創造價值的。

在這樣密集的私人、切身經驗之前,則是一次印象深刻的團體經驗。

今年的7月11日,我參加了OSSF在台北市中心所舉辦的workshop,主題是軟體的中文化。三位應邀分享軟體中文化經驗的講者,在做結論的時候,都不約而同地提到,其實軟體「中文化」只是一個更重要議題的子題、一道全景的一小部份(a part of the big picture):即軟體的「國際化」(internationalization, “i18n”)以及軟體的「本土化」(localization, “l10n”)。如果一套軟體在設計的時候,沒有考慮國際化,亦即,這套軟體可能被許多不同語言、不同語境、不同文化意義的使用者利用,那麼,軟體要能夠在異地本土化,就會是令人相當痛苦而挫折的經驗。在過去,軟體國際化及本土化的工作,不但複雜、昂貴,需要在設計之初就考量進去,因此能夠作到i18n及l10n的軟體,多半是出自跨國軟體大廠之手,因為i18n及l10n的實作好壞,直接影響到這些跨國公司在不同語言區的商業利益。但是open source社群在這兩個議題上的著力,可說是出自一種「在地自發性」(grassrootness)、從使用者自身利益出發的切入角度 -- 相對於跨國公司來說,i18n與l10n的成敗優劣,更直接影響到每個使用者的每日生活與工作經驗。Open source社群希望這種自發性的摸索,能逐步累積成有系統的知識,進而反過來影響未來每個程式最原初的設計,讓i18n和l10n成為程式設計之初就要考慮到的要素。另一方面,先前i18n及l10n之所以只有跨國公司才負擔得起,原因是因為i18n/l10n昂貴且不具成本效益(只有對跨國公司才有規模經濟的效用)。然而open source模式的出現,說不定可以讓i18n和l10n的知識得以普及,等於是成就了一種公共造產的作用,讓i18n/l10n不再昂貴而無成本效益。

這兩件事情組在一起,又會拼湊出什麼樣的圖像呢?

我想首先還是先從i18n和l10n對台灣軟體開發者的文化意義說起。傳統上我們把思維模式放在「軟體『中文化』」這個句型上。這次OSSF Workshop點出了一件重要的事,亦即問題不在於「中文化」,而在於軟體「國際/在地化」。軟體「中文化」只是軟體「國際/在地化」的一個實作及一個環節。更大的問題在於軟體的架構思維(design mentality)要如何改變。

然而更重要的是,身在台灣,我們一向習慣於「輸入」、「引進」別人的軟體。即使我們終於從軟體「中文化」跨到軟體「國際/在地化」,我們所在做的事情依然是「要求」外國的軟體在設計之初能考慮進去國際/在地化的議題,「期待」外國軟體的每一次更動,能增添新的跟國際/在地化有關的功能(如果直接內含中文介面就更好了)。我認為我們做為台灣的軟體開發者,也同樣應該有軟體國際/在地化的視野。正如OSSF Workshop當天結論時間,主講者之一的Jedi所言,「即使是在台灣的軟體開發者,在設計軟體時,也應該一開始就考慮到i18n的問題,而應該把自己軟體的中文版(在地發行的版本),當做是自家軟體l10n的第一個case來做。」

這樣的思維考量,跟我們如何看待自己,以及我們在世界上的位置又是什麼,這兩個問題,有極重要的相關。我們如果一直只是處在軟體開發的末端,等待別人賜與他們做好的結果,甚至只能跟在後頭作使用者介面的本土化,那麼我們永遠只能處在被動的地位,總是等待、期待、失望(大多數時候)。即便我們累積了很多軟體中文化的經驗,但我們仍然只能把這些經驗告訴國外的軟體開發者,希望他們在開發軟體時能多想一些。這就是我所說的被動地位。如果我們沒有自行解決問題的能力,我們永遠只能依靠別人。
而對於台灣的軟體開發者,甚至更擴大一點,對於台灣的資訊產業來說,一個更與生存悠關的問題便是,我們經常是不能依靠別人的,更甚者,我們其實經常得站在軟體開發的源頭,而不是末端。試想,台灣有那麼多對世界輸出的硬體設備,這些硬體設備無一不需要驅動程式、工具程式、應用軟體的配合。從國外使用者拆開主機板或視聽設備的包裝盒、將安裝程式光碟放進去光碟機的那一刻起,我們軟體國際化/本土化(例如軟體「德文化」或「日文化」)的良窳,就直接影響到使用者對我們產品的觀感,成敗立判。而我們也都知道行銷學是怎麼告訴我們的:產品給人的使用觀感,會直接影響使用者對產品的信賴。一個產品絕不只是單單滿足其功能上的效用,就可以讓人滿意。而使用觀感,一如產品信譽,建立難、敗壞易。我們怎麼還能夠妄自菲薄,認為自己在世界上沒有影響、沒有位置?我們在這個世界上所給出的各種表現,卻無一不在決定我們下一刻在世界上的位置是前進或倒退!

而這些又與open source的模式及社群,能夠產生什麼樣的聯結?

就拿軟體國際化/本土化一事來說,在前段我提到,i18n/l10n在過去是只有跨國軟體集團負擔得起的事務,因為它程序繁瑣、成本高昂,有許多技術和文化幽微差異的know-how,而且在一般人的算法中,很難產生規模經濟效用(註)。然而另一方面,i18n/l10n對講求”glocalization”(globalization+localization)的今日,卻又如此地重要,重要到其實那根本是個non-issue,根本是件「無庸置疑,就是應該要做」的事。Open source的公共造產,讓i18n/l10n的知識,得以成為軟體設計思維的內在一環(a built-in sector),一如軟體品質本該是內建的一樣。然而,如果沒有open source的模式,我們將很難想像,如此與每個人悠關、卻又有著如此豐富的文化多元性/歧異性的議題,要如何能在少數軟體開發者單打獨鬥的狀況下完成。Open source的模式可說是一種內在於本質的結盟(a built-in alliance),它本身就是一種重要的知識分享模式。

其實,我一直認為,「open source有沒有獲利模式」或「open source如何能有獲利模式」,根本不是我們要問的問題。事實是,要單單從軟體獲利,在這個年代是極為困難的事。獲利不是來自大家都會(或是關鍵其實掌握在別人手上,而我們幻覺地以為能分得一杯羹)的東西 。我們一直以為固守著少數的知識「資產」,便挖到了價值和利潤的泉源,然而事實上大多數的井都是乾的,而遍地都是前人鑿過的乾井。台灣不是沒有軟體開發者的國家,問題是我們往往在做別人已經做過、別人已經做得極好的事。全球化的贏家通吃傾向,只會讓眾多長相一模一樣的替代品,看來毫無特色。就拿影像軟體為例,去任何一家軟體賣場,我們都可以找到許多功能相近的相簿軟體或touch-up軟體,問題是大家會用的程式,永遠只有那幾套。同樣的狀況也出在更廣泛的知識創作上(例如文字、影像及音樂)。大家都說關鍵在差異化(differentiation),然而重點是,要能創造差異化,就必須先滿足所有普同性(universality;亦即人人〔競爭對手〕都有、人人都在做、人人都會做)的條件。像軟體這種龐大的知識體系,如果連基礎的程式庫、使用者介面等元件,都沒有辦法公開取得、流通、修訂、衍生、討論,我們實在很難想像,最基本的「普同性」的要求,要怎麼滿足。
我花了許多篇幅在講述軟體國際化/本土化的議題。其實,軟體的本質是在為了解決人的生活需要,我們經常忘記這個出發點。我們應該採取的姿態是學習自己解決問題、創造解決問題的工具和知識,而不是等待別人幫我們解決問題,或者把解決問題的資格、權利與責任(對我來說,那是一種近乎存在主義式的責任)放任交付給他人。另一方面,當我們解決了自身的問題,如果我們能有一套方法,將之散播出去、與他人分享,我相信同樣也是我們對這個世界所應負起的責任:我們不應永遠等待他人的施捨,但同樣的我們也沒有妄自菲薄,認為自己的需要稱不上需要,或者認為自己沒有解決與滿足自己需要的能力。我不認為「重新發明輪子」有什麼不好,如果我們重新發明的輪子更好的話。另一方面,要站在巨人的肩膀上、避免重覆做白工,我們就更需要知識的開放和知識的流通。將這樣的想法映照到台灣的資訊工作者及資訊產業,我認為我們絕對有自身需要的特殊性,然而我們自身有這樣的需要,其實也代表世界上絕對也有人和我們遇到了一樣的需要和問題。我們如果能解決自身需要,就能夠幫助別人,把我們的知識和能力,貢獻給世界上的其他人。這不是高調,就如我先前提過的,我們對世界輸出了如此龐大數量的資訊產品。我們能在任何一個環節上做發自本地(與本心)需要的提升,就是對這世界極大的貢獻。我總認為,open source是一種「具有世界視野(world horizon)的解決在地自身問題(grassroot needs)的思考模式」。

這就是我最近從兩件深刻的open source經驗中所體會到的想法。我比較不擔心獲利的問題,那是商業性活動要能存續及壯大的必然邏輯,亦即,那是商業活動的內在本質。我比較在意的是知識的流通,以及知識的流通,如何能帶來(狹義上)軟體及資訊工具品質的提升,以及(廣義上)軟體和資訊對於人類生活的幫助。我覺得我們面對這樣的世界,我們是可以做一點什麼、給出一點什麼的,這其實是我們無可逃避的責任。Open source可以說是這樣的一種動力,使人們必須面對這樣責無旁貸的現實與迫切。

註:我需要對「一般人認為,軟體國際化/本土化很難產生規模經濟效用」這句話稍作解釋。舉例來說,我們一般會認為,軟體只要有英文版,就可以在國際上通行無阻,因為要為一個非英語的語境訂製出一套新版本(例如荷蘭文版),感覺上不會因此而增加銷量(「反正他們都會看英文」是這種生成心態的原因之一),除非能像跨國軟體集團那樣,儲備了足夠的國際/本土化知識,市場又夠大,那麼每增加一套新語言版本的成本不致太高,而相對增加的銷量則可以提升許多。

2 Responses to “從最近兩件自身的open source經驗談起”

  1. on 28 Jul 2004 at 01:59ilya

    簡單地表達一下我的感受好了。我覺得你這一篇寫的真的很好。有點像是把那天 blog 中文化工作坊裡面悶在胸口的不順的氣終於呼吸暢通的感覺。為什麼要談 blog 這種溝通的「小」工具?為什麼要用 IRC Channel?在「社群」上面撞出新的火花?很多單獨不容易回答的問題,在這次的經驗中有了連動的效果。

    不知道為什麼,我的腦中閃過「就像是 P2P 一樣」這幾個字。不再以傳統的模型,而是直接與全世界的人對話。這個部份我還沒有辦法講的太清楚,我希望可以寫一篇 blog 來回應 :P

    最後,謝謝你的這些書寫!

  2. on 03 Aug 2004 at 12:24asee

    我也仿效 ilya 簡單表達一下的我的感受 (笑)
    過往在這些軟體、系統摸索的軌跡上,隱約可以感覺到些脈絡,但又像是整個暗黑大地才被小小火炬照亮一小角一樣,還尋不著一個清楚的全貌。
    反反覆覆,也許火炬進化成了燈塔,所體會到的,雖然無法說是全部(有「全部」這種體認的存在嗎?),但也比過往要來的更廣了些。
    如同你這篇所說的….一道全景的一小部份(a part of the big picture)
    我想,「參與」本身就是體認與理解的開始點。