原文在スペシャルインタビュー 世界がRubyを愛する理由(まつもとゆきひろ氏 ネットワーク応用研究所 特別研究員)。這是日経 BP主辦的「次世代開發論壇」時的訪談,於 2006 年 12 月底刊載的。以下摘錄一些重點。若有錯誤,請不吝指正。
第一頁
在 Ruby 的 mailing list 上,英語討論量約為日語的十倍。Ruby 的 conference (Ruby Conference) 也是國外先,例如美國 (RubyConf) 2001,歐洲 (Euruko) 2003,日本 (RubyKaigi, [報導] [網站]) 2006。
Ruby 的英文相關書籍已有 30 本以上,2000 年在美國的 Programming Ruby 是第一本。目前銷售量甚至超越 Perl 及 Python。
Rubyforge 上也有超過 2500 件專案,這些專案幾乎都是以國外開發者為中心。
第二頁
– 為何創造出 Ruby?
本來就喜歡語言,原本想設計一種自然語言,不過不太行,後來覺得如果是程式語言的話自己就作得到。大學進入程式語言研究室,光只有構想的語言就有好多,如果連只有想到名字的也算大約有 11 個 (笑)。實際動手的只有 2 個。學生時所作的是幫 C 加上 Eiffel 風格的 OO。
會想做 Ruby 是因為同事(石塚圭樹)「Perl 寫來方便但讀起來很難。如果有好的 OO Scripting 語言就好了」。雖然當時有 Python,不過沒有內建 regular expression,寫起來不像 Perl 那樣快速。因此想寫一個能兼有 Perl 的快樂及 OO 美感的語言。
1995 年 12 月 Alpha 版在 newsgroup 上公開。收到了很多 bug report,為了修正 bug,睡眠時間都變少了。
– 為何很快就擄獲了最開始的使用者?
希望能很方便的處理文字,寫 script,大概是這樣的使用者吧。此時對於感到 Perl 極限的使用者選擇有三個: Perl5,Ruby,Python(按: Perl 5 於 1994/10 released)。Python 剛提過沒內建 regular expression,而 Ruby 比 Perl OO 得更徹底。
很多使用者送來 patch 或應用。譬如有天送來一個 patch,發現只要 patch 後,就能讓 Ruby 支援 UTF-8。
第三頁
– 海外的使用者是如何擴大的?
從 Programming Ruby 開始。
創造 Smalltalk 的 Alan Kay,創造 Objective-C 的 Brad Cox,以及提倡重構 (refactoring) 的 Martin Fowler 也注意到 Ruby。
2004 年推出的 Web Application Framework – Ruby on Rails 使得 Ruby 廣泛備用在商業上。O’Reilly 站內文章提到生產力是 Java 十倍,雖然是否有十倍尚有爭議,但實際寫程式的量只有十分之一。RoR 作者 David Heinemeier Hansson 說 Ruby 是「能寫出美麗的程式碼,能使程式員快樂的語言」。
– 要怎樣能寫出普及世界的軟體呢?
回頭看 Ruby 的例子,覺得是因為累積了很多的幸運。不過,一開始就有想到「不要只有侷限在日本」。1997 年開始有英文 mailing list,ChangeLog 也附了英文,集結 Ruby 應用的 Ruby Application Archive 也希望日本使用者用英文登錄。
第四頁
日本也有很多有趣的技術,但缺乏英文文件等有很大的語言隔閡。
回到 Ruby,當初是追求「要怎麼作才能讓自己能快快樂樂寫程式」,而將自己想要的東西具體化。Ruby 並沒有作出什麼其他語言沒有的創舉,而是相信程式員的感受,從現有程式語言中選出對使用者來說好用的東西。這就是 Ruby。
想要的是能將自己的工作立刻變為程式語言。最好是能這樣:將腦中所想到的演算法給記下來,就能直接變成程式跑。為了讓程式動,往往要經過一大堆繁雜的程序。不過,我們不是為了電腦而工作,而是要讓電腦替我們工作。所以要能夠快樂寫程式,我是這樣想著而創造 Ruby 的。
– 之後程式語言會如何進化呢?
多核心是現在注目的焦點。不久將來可能大家電腦都是 64-core,128-core,task 的分配就不可能以 thread 進行,而不得不自動化。程式語言的平行化處理能到什麼地步呢?說不定不是 C 或 Ruby 這種 procedural language,而是 functional language 存活也不一定。
我認為必須要有更多程式語言被創造出來才行。無數的應用程式創造出了 design pattern,就像(圍棋的)定石一樣。相較之下,目前也有幾千幾萬種程式語言了吧?但是程式語言的 know-how 仍未確立。希望年輕的工程師們來挑戰程式語言的開發。
2006年12月21日 ITpro
關於まつもと ゆきひろ (Matsumoto Yukihiro,松本行弘)
中學二年級時,在父親的口袋型電腦 Sharp PC-1210 上以 Basic 寫了第一個程式。1984 年進入筑波大學第三學群資訊(情報)學類。大學其中兩年休學,從事基督教傳教工作。大學時在程式語言研究室,1990 年畢業。1993 年以來,一直從事物件導向程式語言 Ruby 的設計與開發。
1997 年開始,在「株式會社 Network 應用通信研究所」擔任特別研究員,專注開發 Ruby。著書: 「物件導向 Script 語言 Ruby」(與石塚圭樹共同著作),「Ruby Desktop Reference」,「軟體工匠(ソフトウェアの匠)」等。自稱「語言 otaku」 (語言宅男?)。在家中是三個女兒與一個兒子的爹。
Although it’s a good one, but as a commercial developer it’s not enough to develope a practical system.
給 Alex,
您是指 Ruby 還是指 RoR,抑或兩者呢?
或許您可以分享一下,您認為是執行速度的問題,還是什麼其他的原因呢?