依靠其簡潔、優雅的語言特色,以及 Rails 等開發框架的成功,Ruby 在 Web 開發領域早已成為一種人氣頗高的動態腳本語言。然而,當今世界上流行的編程語言中,只有 Ruby 來自亞洲,作為 Ruby 語言的發明者,松本行弘(Matz)表示自己常因此而感到孤獨。
作為這本書的譯者,2012 年 11 月借中國 Ruby 大會的機會,我有幸以圖靈特派記者的身份對 Matz 進行了一次專訪(訪談內容參見圖靈社區)。穿著 UNIQLO 的格子襯衫,充滿技術宅范兒的 Matz,平時看起來不茍言笑,談起技術話題來就好像打開了話匣子一般滔滔不絕,在 Twitter 上的發言也相當活躍。在訪談中,Matz 談到了 Ruby 的發展方向,他希望 Ruby 能夠在 Web 開發之外的領域(科學計算、高性能計算和嵌入式系統)有更多的發展,同時他也希望中國的程序員們能夠積極為開源社區做出貢獻,努力成為能夠影響世界的工程師。
Matz 一直稱自己是一個普通的程序員,創造 Ruby 只不過是他編程生涯中的一小部分。無論是以“資深 UNIX 程序員”的身份,還是“Ruby 之父”的身份,Matz 都有足夠的資格對現今的編程語言和技術品頭論足;另一方面,計算機技術的發展可謂日新月異,Matz 認為有必要從過去到未來,以發展的眼光來看待這些技術的演進。用資深程序員的視角和發展的眼光來剖析技術,這就是 Matz 筆下的《代碼的未來》。
在這本書中,Matz 將和大家一起探討豐富多彩的技術話題,并對編程語言的未來發展趨勢做出自己的預測。像 Lisp 這樣擁有最簡核心的函數型語言真的會是未來的發展趨勢嗎?垃圾回收、閉包、高階函數、元編程等編程語言中的要素是如何發展出來的?Google 為什么要開發 Go 和 Dart,它們能取代 C 語言和 JavaScript 嗎?大數據時代經常提到的 Hadoop、MapReduce、NoSQL 等名詞到底是什么意思?關系型數據庫真的已經走到窮途末路了嗎?要充分運用多核心和分布式環境,在軟件層面需要做出怎樣的應對,又有哪些技術可以使用?如果你對上面這些話題感興趣,無論心中是否已經有了自己的答案,都可以看一看來自 Matz 的解讀。
和《松本行弘的程序世界》一樣,這本書也是 Matz 在《日經 Linux》雜志連載的專欄文章的一個合集,書中選取的文章之間有近四年的時間跨度,且章節的安排也和原稿寫作的時間順序有所不同。不了解這個背景的讀者,可能會被書中一些貌似前后重復或者“穿越”的地方搞得一頭霧水——少安毋躁,這不是 bug。相比《松本行弘的程序世界》的14個主題來說,這本書的主題更加集中和深入,而不變的是,話題依然豐富,觀點依然犀利,內容依然扎實,讀起來暢快淋漓。
最后,感謝Matz在本書翻譯過程中所給予的幫助和指導,感謝圖靈公司各位編輯的辛苦工作,希望每位讀者都能夠從中有所收獲。
周自恒
2013 年 3 月于上海