日本泡沫經濟催生的程式語言──「Ruby之父」松本行弘專訪

2016.12.06 by
顏理謙
攝影/蔡仁譯
大多數知名程式語言都起源西方,1995年問世的Ruby,則是珍貴的亞洲代表。被稱為「Ruby之父」松本行弘,本月四度來台參加2016 Ruby Conf Taiwan,會後特別接受《數位時代》專訪。

「Matz is nice so we are nice!」在Ruby社群中,流傳著這樣一句話。而Matz,指的就是發明Ruby的日本程式設計師松本行弘(Matsumoto Yukihiro)。

飄雨的午後,松本行弘一臉溫和笑容來到約定地點。儘管在程式領域的地位崇高,但松本行弘無論面對社群還是媒體,態度都非常隨和親切。假如除去頭銜,今年51歲的他,看起來就是個好脾氣的鄰家大叔。不過,他說自己從小就是個「奇怪的孩子」,不愛聽大人指示也不從眾,只做真心喜歡的事。「如果大人說,『大家都這麼做了,你也應該這樣做。』我就會想,就算大家都做了,那也跟我沒關係呀。」原來,在世界聞名的「nice」背後,還藏著些許叛逆。

「我12歲的時候,爸爸買了一台電腦回家,那是我第一次接觸電腦。」松本行弘的父親在販售建築資材的公司上班,雖然工作內容和程式設計一點關係也沒有,但父親卻對各式各樣的電子裝置都很感興趣,喜歡買回家鑽研。

家裡小孩多,但是只有他一人對電腦一見鍾情,「那些機器最後卻都變成我的玩具了,」松本行弘笑著回憶。當時的他,只會照著書上的步驟輸入程式,第一個寫出來的程式還是實用性很高的算錢,「比方說我手上有一筆錢,要用多少張鈔票和多少枚百元銅板才能湊出這個金額?說實話不怎麼好玩啦。」真正開始動手寫,則是到了15歲那一年。

攝影/蔡仁譯

熱愛科幻小說的程式少年

對少年松本來說,程式就像是一個活生生的玩伴。「我覺得程式和小狗有點像,你可以叫它做這個、做那個,它聽得懂也做得出來。我那時候覺得,啊,電腦好可愛呀!」松本行弘比手畫腳解釋,「其他的玩具比如說腳踏車什麼的,你不會覺得它有生命,對吧?可是你只要教電腦做某一件事,它就會照著做,這讓我覺得它好像是活的。」他呵呵笑。

小說也是松本行弘的啟蒙老師。他說,自己小時候非常愛讀書,最喜歡年代久遠的科幻小說,像是艾西莫夫的機器人系列和愛德華‧艾默‧史密斯的《透鏡人》。高中時讀了美國作家山謬‧狄雷尼(Samuel R. Delany)發表於1966年的小說《Babel-17》,深深受到震撼,也埋下日後Ruby的種子。

這部小說的背景設定在未來,一場星際戰爭中,其中一方發明了名為「Babel-17」的語言,而敵人學了這一種語言之後,個性和思考方式也跟著改變,反而成為己方叛徒。「雖然小說裡講的是人類的語言,不是程式語言,不過我那時覺得,語言這東西真是有趣啊,竟然能夠影響人心!如果我也能創造出一種語言該有多好。」

松本行弘認為,語言具有改變性格的力量。「學了Ruby的人,個性好像也會變得不太一樣耶!」他大笑。「比方說我們喜歡簡化事情,討厭複雜的步驟,希望可以輕鬆得到結果。一件專案如果可以用10行程式寫完,就不會想要用100行寫完。」

人生低潮反而催生Ruby

1990年,松本行弘從筑波大學資訊科學系畢業後進入職場,原本滿懷著雄心壯志進入軟體開發公司,負責內部用軟體開發,卻不巧遇上了日本泡沫經濟破裂的年代。

由於大環境景氣差,公司取消了這項專案,也不再開發新軟體。原本30人的團隊瞬間被解散,只剩他和另外一位工程師留下來維運,偶爾接接電話、回答問題。坐冷板凳的日子實在不好過,「我明明是工程師,卻沒辦法開發新軟體,因為公司賺不了錢。然後平常就算有電話打進來,我也不知道該怎麼回答,只能跟對方說:『哎呀不好意思,不然,你把電腦重開機試試看吧!』」他笑,「那時真的非常閒,完全沒事做,主管也不管我們。所以我就想,不如自己來寫一些東西吧!」

人生的低谷有時其實是禮物。誰也不知道,這段抑鬱不得志的時光,竟然意外孵育出Ruby。

1993年,松本行弘著手編寫Ruby,並在兩年後公開發表。由於出自日本,Ruby剛開始拓展的速度沒有那麼快,但隨著網路上的英文資料越來越多、Rails框架跟著出現,不只影響力越來越大,包括Twitter、GitHub、Twitch、Airbnb等知名網站都是以Ruby on Rails建構而成,社群發展也非常活躍。

攝影/蔡仁譯

Ruby的成長,其實也跟自由軟體的特性有關。松本行弘說,大學時代最喜歡的程式語言是1985年問世的物件導向程式語言Eiffel,「但現在已經不太有名了。」松本行弘認為,程式語言能夠廣為流行的關鍵並不在本身設計好壞,而是在於社群發展是否夠蓬勃、使用者是否夠多,由於Eiffel並非開源,因此也影響到傳播範圍。

不過他強調,當年純粹是因為在學習過程中接觸很多自由軟體,基於回饋的心情,很自然地以自由軟體方式釋出Ruby。「現在想想,正因為是自由軟體,Ruby才會被這麼多人使用、社群很活絡。雖然我一開始並不是因為想讓Ruby聞名天下才這麼做的。」

程式教育的重點是自發性學習

程式設計納入義務教育成為全球潮流,不只台灣將在兩年後上路,日本也預計在四年後實施體驗式課程。不過,從小玩電腦、現在家裡又有四個孩子的松本行弘認為,重點是要讓小孩自發性學習,否則會造成反效果。

「大人讓孩子學程式設計時,心裡總會有各式各樣的期待。例如覺得現在教小朋友寫程式,以後社會上就會增加很多工程師,有很多人可以做軟體開發什麼的。可是老實說,我認為這件事不太可能發生。其中一個原因是師資培育時間不夠。」他認為,程式設計雖然有趣,可是現在能將程式設計的好玩之處傳授給孩子的老師並不多,需要長期培養。此外,有些孩子就算不刻意教,也會對程式設計有興趣,有些孩子則是需要學校提供接觸程式的機會,松本行弘認為,學校只要提供好的體驗,讓孩子覺得程式設計很有趣、「電腦很可愛」,就夠了。

其實松本行弘的四個小孩,沒一個對程式設計有興趣。但他不以為意,只開玩笑說:「好像有點可惜齁,可能我不是好老師吧,哈哈!」當年不愛聽大人話的他,就算成了父親,也堅持要讓孩子長成自己喜歡的樣子。

每日精選科技圈重要消息