過去筆者無意處理 GNU/Linux 的中文資訊化議題,僅是在 2002 年與 Tim Hsu (crazykid) 一起從事 JMCCE 後續版本開發,貢獻了酷音輸入法模組,之後就入伍服役,自然無暇理會。而退伍後的 2004 年,意外發現當時輸入法系統有了頗大的轉變,樋浦秀樹 (Hideki Hiura) 先生的大名反覆出現在資料上,作為 UNIX 世界 X Window System XIM (X Input method) 一系列架構與協定的創建者的他,在檢視 XIM 諸多限制後 (可參考筆者的簡報「輸入法開發實戰」),決定徹底推翻 XIM,並重新設計 IIIMF (Internet/Inteanet Input Method Framework) 這個規模宏大的新架構。IIIMF 最初與 Solaris 國際化 (internationalization,簡稱 "i18n") 及 Java Input Method Framework 的迫切需求有關,服務於 Sun Microsystems 的 Hideki 先生領導 Sun 的同仁研發了一系列的軟體建設,並透過 OpenI18N,將這些成果匯集起來,積極整合到若干主流平台,包含 GNU/Linux。2004 年,整個 IIIMF 趨於成熟,GNU/Linux 的開發也因為 FreeDesktop 活躍主導與 Xorg / XFree86 分道揚鑣的影響,積極採納 IIIMF 與 SCIM 等嶄新的輸入法架構,期望一舉克服 Unicode 環境最後的一個環節,筆者就是在那時重新對輸入法開發產生興趣。在台灣,筆者發起 [新酷音輸入法] 計畫後,有幸能在 kanru, gugod, zonble, kcwu, seamxr, pcman, ... 諸位朋友的合作下,讓酷音輸入法在許多平台獲得支援,其中就包含 IIIMF。在 IIIMF 的支援上,筆者吃了很多苦頭,還好 Hideki 先生領導的 Sun 團隊與 Leon Ho 領導的 RedHat 團隊的工程師,都相當友善的用 email 與 IRC 討論,讓筆者少走了許多冤枉路,最後 Solaris 與 JDS (Java Desktop System) 都內建了新酷音輸入法,而 Hideki 先生也熱情地提及許多技術細節。猶記得,2004 年我們在台大體育館旁邊的咖啡廳相會,Hideki 先生與 Roger So 都是 TOSSUG 邀請的貴賓,侃侃而談 Linux 在桌面系統的巨變,之間穿插著頗多討論,那時,筆者就對這位細心又有風度的 Hideki Hiura 先生有著深刻的印象。索取親筆簽名後,我們禮貌地道別,只是,沒想到這一面之緣,竟成絕響。
以下引用 XTech 2008 研討會中,關於 Hideki Hiura 先生的簡介資訊:
"Hideki Hiura is chief scientist and CTO of JustSystems, Inc. He is a founder and chairperson of OpenI18N.org/Free Standards Group, an independent, nonprofit organization dedicated to accelerating the use of free and open source software by developing and promoting standards. He is also a founding member of W3C I18N WG. As an architect at Sun Microsystems, he was involved with variety of standards and standard organizations including ISO, W3C, OMG, The Open Group, OSF, Unix International, X Consortium and Unicode."
對於接觸過 C 語言程式設計的朋友,小弟想指出一個事實,在當前軟體開發的趨勢來說,程序員有必要比過往更熟悉開發工具,善用工具給予人們的便利,就算是低階系統開發也是如此。試想,F-22 戰鬥機的機載軟體已經達到 1700 多萬行程式碼的狀態,難道還要茹毛飲血的開發軟體嗎?這也是此系列演講的目標,透過 GNU Debugger (gdb) 一類強悍的 source-level debugger,並貫徹「作中學」的概念,重新檢視自己對 C 語言的認知,最重要的是,要知曉實際系統是如何運作,而不是死板地接受書本上固定的圖表。
簡報貌似相當多頁,不過其實就是 Step-by-Step 操作 GDB (奇怪了,小弟從未在市面上的書籍看過這樣基本的指引),在不修改原始程式碼的前提下,逐一追蹤記憶體與程式執行流程的變化,中間穿插一些小實驗,並透過 Web 2.0 常見的 AJAX 作為 C 程式的 I/O 處理,寫程式本來就要作能用且有趣味的東西,不是嗎?筆者的設計,就期望讓 C 語言學習能多一些趣味,不時要透過工具,去理解寫出來的程式,在真實系統中是如何展現。
整整四年前,Ubuntu Linux 創辦人 Mark Shuttleworth 在我的筆記型電腦留下 [Follow your dreams] 的話語後,即反覆思考該如何實現所謂的「夢想」。沒有一種不通過蔑視、忍受和奮鬥,便可征服的命運,特別在台灣的資訊科技業更是如此,我們被 (業主) 賦予高度的期望,而可用的資源總是短少,專案時程的壓力卻不曾減輕,人人求自保都來不及,還談什麼「夢想」呢?無從否認,而對我這種企盼「世界大同」或「建構理想的社會主義世界共同體」的「夢想」來說,更不知是要等待幾百、幾千年,或許期待第四次世界大戰前夕,人類的覺醒,還比較可行。然,盤據於心那些「該做的事」,在這幾年思索後,卻越來越明朗。愛默生說過:「鞋匠能作好鞋子,因為他只做鞋,不做別的」,作為一個電腦軟體工匠,捫心自問,到底專心做好幾雙「鞋子」呢?智慧是知道接下來該做什麼,技術是知道如何做,美德則是實地去作,我們之中或許不少人兼具「智慧」與「技術」,但去實現的「美德」卻不時被打折扣,這些該做的事到底怎麼了呢?
既然成長的路是無法抗拒的,那在前進的途中,主動搬開別人腳下的絆腳石,往往也是為自己鋪路。Steve Jobs 曾說:「並不是每個人都需要種植自己的糧食,也不是每個人都需要做自己穿的衣服,我們說著別人發明的語言,使用別人發明的數學... 我們一直在使用別人的成果。使用人類的已有經驗和知識來進行發明創造是一件很了不起的事情」,處於「後 IC 時代」的我們,有時也不免驚訝於這個產業發展的速度,一切都跟基於人類已有的知識背景,高度分工、跨領域密集發展,積極地進行創新,才有如此的局面。每次把玩手上這台由前公司設計生產的 3G 手機時,不經意就會讚嘆於電子零件的精巧、通訊技術的突發猛進,以及藏於其中、有如魔法的韌體。不光是硬體、射頻,軟體自然也是重點,但為人作嫁久了,重複進行著創新背後的瑣碎流程,還得安慰自己這就是高科技?稍早去某知名電子公司演講,談及產品開發經驗時,突然脫序地感嘆道:「其實只要待在電子系統廠,不必特別去追求,這些經驗值就會逐漸攀升,但是...」,當時未講完的部份,就是整體的技能,包含軟、硬體,到天線射頻等等的技術創新,往往很難突破,更甚者,成為如此的 [個案]:
十年前還是大一新生時,當時抱持著「台灣人當然能設計出世界一流的資訊系統,寫出世界一流的軟體」的信念,跌跌撞撞走過 server-side computing 與 mobile software,而今,更加堅定的是,這其實就是競爭力的關鍵,這「世界一流的軟體」乃是瞬息萬變的資訊世界中,重要的標的,世界的舞台很大,很多領域都有機會成為一流,但一定要堅定地走下去。下筆之際,想到朱經武教授曾說:
「不要害怕失敗,即使是摔了一跤,也能抓回一把沙。」
或許我還不具備清楚知曉資訊社會未來走向的智慧、缺乏如何做的技術,但我相信有美德,不間斷地做下去。記得有句話說,歲月,帶給庸者的僅僅是發皺的皮膚,但對於智者,還另外附贈一份積澱的魅力,但願苟活到未來的我,在回顧以上狂言之際,真的沈澱了一些智慧,那抓著那把微不足道的砂粒,也無憾了。帶著責任感生活,試著為世界帶來點不同的事、作點貢獻,生活將更有意義,「活著就是為了改變世界,難道還有其他原因嗎?」,Steve Jobs 又提醒道,自勉之。