Ruby之父:寫Ruby時工作特別閒,總加班的人很難做出創造

在近日於上海召開的 RubyConf China 站上,InfoQ 有幸採訪了 Ruby 之父松本行弘先生。松本行弘先生是 Ruby 語言的設計者,投身編程行業已逾三十年。作爲一門編程語言的創造者與推動者,他是怎麼看待對於 Ruby 語言的褒獎與批評?又是怎麼看待 Ruby 與 Java 語言的對比?對於日本的 IT 產業現狀與 996 的加班問題,他又抱有怎樣的看法?

極客檔案人物專題紀錄片

松本行弘、Ruby 與中國

我是松本行弘,Ruby 的主要設計者和實現者。大概 25 年前我開始設計和開發 Ruby,目前這門語言被全世界包括中國的開發者所使用。最近我的新書《編程語言的設計與實現》被翻譯成中文在中國出版。我對編程語言本身有濃厚的興趣,幾十年來一直孜孜不倦地研究各種語言,這對我設計 Ruby 有很大的幫助。

在日本以自制編程語言爲主題的書非常多,這些書絕大部分是介紹編程語言的實現的,幾乎都沒有涉及語言設計。設計編程語言是一件比較小衆的事,有這方面經驗的人很少,我這二十多年來一直在從事 Ruby 的設計和開發工作,在這些年的經驗基礎上,我把設計編程語言的過程和心得寫成了一本書,那些對編程語言感興趣的程序員讀起來會有所收穫,非常感謝圖靈公司能夠引進並組織翻譯這本書。

Ruby 在世界各地都有開發者社區。光今年,我就參加了歐洲、美國、印度、新加坡、中國的 Ruby Conf 大會。看到這麼多人都在使用 Ruby,我覺得很開心。各地的開發者雖然國籍、人種、身高不同,但他們有着驚人的相似之處:他們都非常熱愛和享受編程,能與他們相遇並交流是一件幸福的事。

注:本屆 RubyConf China 是舉辦的第十屆,松本行弘在大會上做了《The future of Ruby》的主題演講。

關於 Ruby 語言的那些愛與批評

我最開始開發 Ruby 時,沒有想過會有這麼多人來使用它。我當時想,大概會有百來個人用它,過了幾年它就會被人淡忘。令我意想不到的的是,Ruby 後來被很多開發者所使用,越來越多的人蔘與到 Ruby 語言本身的開發和發展中來,用戶們自發在全世界各地成立了開發者社區,這進一步促進了 Ruby 的推廣。

Ruby 語言有很多特性,我覺得最爲大家喜愛的是它的簡潔、高效以及人性化。開發者用 Ruby 寫的程序比用別的語言寫的程序更簡潔。Ruby 非常高效,很多情況下只需要短短几行代碼就可以處理很多工作。它非常人性化和靈活,讓開發者能夠更加專注於編程最有樂趣的部分。這些也許是 Ruby 開發者最喜愛的特性。

的確開發者對 Ruby 語言有很多正向的評價,比如剛纔講到的簡潔、高效和人性化。但同時也有開發者不喜歡 Ruby,因爲一旦將 Ruby 應用到工作中,由於 Ruby 太過靈活,犯錯的概率會隨之增大。

從使用 Ruby 的角度來說,我個人認爲最重要的是靈活性。當然容易寫出 bug 的確很煩,不過我還是想要保留 Ruby 的靈活性。的確有一些開發者跟我抱怨 Ruby 太靈活,還有人說 Ruby 很多東西都是在運行時來決定的,比較麻煩。這些其實是一個取捨的問題。Ruby 會持續改進,進一步提高開發效率。

Ruby 3.0,coming next

Ruby 團隊正在開發 Ruby 的 3.0 版本。(在此前 Ruby 25 週年慶祝會上,松本先生曾表示 Ruby 3.0 有望實現 3 倍提速。)目前 Ruby 還處於 2.X 的階段,預計 3.0 版本會有比較大的變化,計劃發佈時間在明年的年底。

3.0 版本針對 Ruby 的一些不足之處做了改進,具體來說:

  • 比如 Ruby 多核利用的問題。現代電腦一般都有多個 CPU,但 Ruby 誕生之初,電腦普遍只有一個 CPU,這就導致 Ruby 目前在設計上還沒能完全利用多核,在這方面我們希望有所改進。

  • Ruby 需要測試才能知道數據類型是否正確,這一點也常常被吐槽。更快發現錯誤能夠提高開發效率,所以我們希望引入類型檢查的功能。

  • 另外,我們還引入了函數式語言的一些特性,以提高生產效率。

Ruby 和 Java 是同齡人,也是一個追趕者

Ruby 的確常常被拿來與 Java 作比較。Java 誕生於 1993 年,而 Java 作爲一門編程語言正式發佈於 1995 年。我開發 Ruby 也是從 1993 年開始的,發佈也在 1995 年,但比 Java 要晚一些。所以 Ruby 和 Java 基本上可以算是“同齡人”。

Java 有 Sun甲骨文IBM 這些大公司的支持,商業上非常成功。Ruby 一直以來都仰仗社區成員和開發者的支持,從這個角度講 Ruby 的發展比 Java 慢得多。隨着互聯網的興起,因爲 Ruby 的靈活性和動態特性十分適合 Web 開發,Ruby 才漸漸爲人們所知。

Java 有大量的使用者和開發者,有一個規模龐大的生態圈,Ruby 也希望能夠以 Java 爲榜樣,迎頭趕上。

技術不能解決所有問題

最近幾年時常會有人說 Ruby 不如前幾年那麼火了,甚至有比較毒舌的人說:Ruby 已死(笑)。所有這些言論,其實都可以歸結爲一種光環效應:當一種新技術產生的時候,受到過度的關注,大衆會抱有過高的期待。但是當真正明白這個技術是怎麼一回事時,往往又會有點失望。接下來會進入一個穩定期,基本所有技術都會經歷這樣一個過程。

比如說,現在比較熱門的 AI深度學習,大家都在談論它們。但是當發現 AI 不是之前想象的那樣萬能的時候,又會有點失望。

Ruby 也一樣,Ruby on Rails 剛出來的時候,因其在 Web 開發上的優勢,獲得了比較多的關注。但實際上,Ruby on Rails 不是無所不能的,也會有各種各樣的問題,人們此後逐漸轉向其他技術,Ruby on Rails 的熱度也就沒有那麼高了。

但 Ruby on Rails 的價值並沒有隨之減少,它仍舊十分適合初創企業快速開發中小規模的 Web 應用。如果能認識到這一點,在適合的場景去使用它,就能體會它的價值 。雖然當應用在幾百萬用戶的 Web 應用或者幾千人的開發團隊時,有開發者遇到了一些困難,但實際上對於一些大規模網站,熟練靈活地應用 Ruby 和 Ruby on Rails 也是可行的。在國外也有很多用 Ruby 和 Ruby on Rails 開發大規模網站的案例,但需要明確是,Ruby on Rails 並不能解決 Web 開發的所有問題。沒有任何一種技術能解決所有問題。

日本軟件行業發展並不好

日本的 IT 產業本身十分依賴大公司,這些大公司本身對於 IT 商業化也不是特別在行。所以說實話日本的軟件行業發展得並不太好。

但近幾年來,日本出現了很多提供 Web 服務的公司。這些公司大多是中小規模,當然和谷歌Facebook 這樣的巨頭不能比,但做得還不錯。

話說回來,Software as a production 這樣偏保守的 IT 產業特點,的確在商業上不是很有利。總體而言,日本軟件行業相對之前來說還是有所進步,之前日本的 IT 產業裏創業公司不多,近年來有所增加。

注:日本與中國同在東亞文化體系下,但在軟件行業,二者之間差別迥異,尤其是在軟件行業的商業化方面,日本距離中國乃至世界都有不小差距。但比較有意思的一點是,日本的頂級技術人物並不在少數,比如本文主人公 Ruby 之父松本行弘,同樣還有 Jenkins 之父川口耕介等。另外一點值得稱道的是,日本開發者的編程書籍寫得特別好,很多國內開發者學習某個語言、框架,都是通過日文編程書籍進行。

總加班的人,很難做出創新與創造

我從事開發工作已經超過 30 年了。在我剛畢業的時候,日本加班現象比較嚴重,我當時常常聽人說一週上了 100 多個小時的班。這是 30 年前的情況了,一般來說加班有兩種人:一種是因爲可以拿到加班費,還有一些人是因爲工作效率低下而加班。

這兩種都是不可取的。作爲一個開發者來說,應該儘量提高自己的工作效率,在單位時間內爲公司提供儘量多的價值,同時公司也爲開發者提供豐厚的報酬,這樣是比較理想的狀態。還是不要加班比較好啊(語重心長)。

我最開始開發 Ruby,是工作比較閒的時候。當一個人很忙的時候,是基本不可能去創造一個新東西或者搞出什麼創新來的。做開發可以改變世界,這是軟件開發這個職業的迷人之處。從這個角度講,提高自己的工作效率,不加班,擁有自由的時間。利用自己的時間創造新的東西,做一些創新性的工作,這纔是正道,希望這樣的人越來越多,也希望鼓勵這種文化的公司越來越多。

後記

雖然跟松本行弘先生的交流只有一個小時左右的時間,但我們已經收穫滿滿。穿着格子衫、牛仔褲揹着雙肩電腦包的他給人一種十分親和的感覺。日本人特有的禮貌讓我們在採訪過程中非常舒適,反倒是他對着鏡頭開始時有些羞澀、緊張。隨着談話逐漸深入,講到技術細節、趣事時,松本先生開始眉飛色舞、手舞足蹈,完全忘記了鏡頭的存在。

一個真實、可愛、鮮活的技術人。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章