未來這五年,軟體工程師如何安身立命? (上) ——Ruby之父松本行弘談《程式碼的未來》

徐騫發表於2013-06-21

近年來,伴隨著智慧手機的普及、數字市場的繁榮,我們身邊正發生著日新月異的變化。作為一個與各領域關係密切的行業,軟體開發模式又在發生著那些轉變呢? Ruby之父松本行弘的新書《程式碼的未來》,將為大家揭開其中的真相。松本行弘眼中的軟體開發行業的未來,到底是怎樣的?總編輯伊藤健吾探訪了位於島根縣的松江開源研究室。

enter image description here

Ruby / mruby開發者
松本行弘 (@yukihiro_matz)

Ruby語言發明者,亦是亞洲首屈一指的程式語言發明者。現兼任網路應用通訊研究所(NaCl)研究員、樂天技術研究所研究員、Heroku首席架構師等。暱稱“Matz”。討厭東京,喜歡溫泉。

++++++++++++++++++++++++++++++++++++++++++++++++++++++
伊藤:感謝您百忙之中接受我們的訪談。最近,我拜讀了您的新書《程式碼的未來》,請您先談一下程式碼以及軟體工程師們的未來吧。

Matz:這還真是有點不好回答呀……不過,非常感謝您閱讀拙著。

伊藤:在本書中,您詳細敘述了您對各類開發語言、程式設計方法的過去、現在以及未來的看法。在此,想請您談一下您是如何看待軟體行業的現狀的。它的本質是否發生了變化?軟體開發的模式是否正在發生轉變呢?

Matz:在書中我也提到過,預測高科技的發展趨勢並不難,我認為,計算機領域在未來的一段時間裡應該還會繼續遵循摩爾定律發展。或許明年會出現可供實際應用的量子計算機,那樣一來,迄今為止的一切可能都要顛覆重來(笑)。不過,根據摩爾定律,計算機的價格會更低、效能會更好、容量會更大,這些基本走向應該是不會變的。但是,這幾年我已經感覺到方向開始發生變化了。這大概是因為,伴隨著硬體的發展,軟體開發勢必也要進行一些調整。

伴隨著多核技術和雲端計算的興起,軟體開發也在發生變化

Matz:大約20年前,我設計了Ruby語言(編輯注:1993年開發),這門20年前開發的語言即使在現在的電腦上執行也依然能取得很高的效能。

這說明20年多年來,軟體的執行環境沒有發生什麼實質性的變化,它們都在單一的電腦上執行。近年來,CPU單核技術已經提升乏力,取而代之的是CPU多核分散處理技術。這樣一來,此前開發的軟體就失去了本有的優勢。從這一點來看開發方法的調整勢在必行。

enter image description here

松本先生認為,軟體的執行環境已經很多年沒有變化了。

伊藤:您剛剛講的這些,在本書的最後一章“多核時代的程式設計”中也進行了總結吧?
Matz:是的。不僅是多核技術,雲端計算的發展狀況基本上也是這樣的。在計算機中有多個CPU的話即為“多核”,在網路中的話即為“雲”。總之,預測軟體開發的未來的關鍵詞應該集中體現為“如何運用多臺計算機”。

伊藤:那麼,在引入了多核技術和雲端計算之後,您認為軟體開發者應該如何改變工作方式呢?
Matz:就目前的變化來講,這10年間,基於Web的開發不斷增加,Web應用的可擴充套件性很強,是一種適於分散設計的應用架構,所以熟悉Web的人,對多核和雲端計算的概念也會比較熟悉。與只瞭解通用機架構的工程師相比,他們應該更容易適應。

伊藤:在採訪從事Web服務和智慧手機應用開發的新興企業時,我們感到,在這一兩年,利用PaaS和雲技術從事服務開發的工程師在快速增加。
Matz:是的。我也認為今後“公司在開發過程中不必購買主機的方式”會成為主流。而且,“不持有”這種思考方式不僅對開發很重要,對企業經營也會產生重大影響。

邁向“持有”不是資產而是負債的時代

Matz:以前,“持有”被認為是企業活力的源泉。擁有高效能通用機的公司能快速處理各種業務,而無法購買昂貴的通用機的公司只能兀自打著算盤……

但是,如今“未持有”的一方反而有利。配備計算機硬體的話,收回成本需要5年,這期間必須讓機器充分運轉、物盡其用。這種方式表面上看好像有利於壓縮成本,但實際上使用舊計算機,會降低生產力,成本反而更高。

也就是說,現在我們已經步入“持有不是資產而是負債”的時代。如果配備最先進的裝置,那些優秀的工程師就可以進行高效開發,但仍然有一些人還在使用3年前的舊機器,那也難怪僅僅編譯就需要一個小時(笑)。Heroku等雲平臺的誕生,使得開發中“持有者的優越感”蕩然無存。

另一方面,“不持有”的好處也體現在了商務上和開發上。比如,受其影響出現了許多新興企業。以前,想要創業必須具備一定數量的儲備資產,用於向資料中心投資、向伺服器租賃公司購買10臺伺服器等。然而,現在只需要使用Heroku即可,最初的1節點是免費的。這樣一來,創業之初,除了進行開發,程式設計師們會花一些時間以外,幾乎沒什麼風險和成本。

我曾經讀過美國投資公司Y Combinator的創立者保羅•格雷厄姆寫的一篇短文,其中有一段我深有同感――“現代的新興創業公司的團隊人數很少,只要能掙夠供大家吃方便麵的錢,他們便會開始新的挑戰”。這一斷言豈不妙哉!“不持有”的靈活性和快捷性,正是推動有能力的人不斷挑戰的後盾。這一趨勢不僅只體現在新興公司內,從前年開始,這股風潮已經影響到了一些大企業。

在美國,迪斯尼和百思買等正是利用Ruby、Rails和Heroku,迅速地以低成本構建起了本公司的服務體系。此前,只屬於投資公司的特權的“新服務開發的迅捷性”以及“開發的靈活性”已經不再由他們獨享。

伊藤:日本的大企業、大開發公司的情況如何?
Matz:我沒有在大企業中供職,所以無法正確分析他們的動向,但是從各種觀點來看,大家基本上都持樂觀態度。但是,作為一名旁觀者,我認為從整體上來看形勢不容樂觀。

enter image description here

忽視了技術創新的“本質優點”的開發案例太多了。

伊藤:您為什麼認為軟體開發的前景不容樂觀?
Matz:傳統的軟體開發仍然是主流。雖說在安裝Web服務的最終環節中使用了Amazon的雲服務,但整個開發流程與過去沒什麼不同。通常仍然是由沒寫過一行程式碼的系統工程師來完成設計。一個軟體開發團隊動輒出動十人,這種情況很多見。

這與剛才所說的“不持有主機所帶來的優勢”完全相反。僅從皮毛上引入流行技術的開發案例並不少見。

我對“私有云”(又稱內部雲或企業雲)感到無比失望。這是因為,雲服務的最大優點就是在網路中使用多臺計算機,而私有云的服務物件僅僅是公司內部的若干臺計算機。這本質上不還是“擁有自己的主機”嗎?這樣可不行啊。

enter image description here

松本行弘指出現在的軟體開發“只是表面上吸收了先進科技的優點”。

伊藤:看起來是在追隨最新的技術趨勢,實際上卻忽視了本質優點的案例非常多。松本先生所說的“暗淡的未來”的其他體現還有哪些呢?
Matz:如今,BtoB的大規模開發,新興企業的小軟體開發等不僅強調“不持有”,還非常重視開發速度。雅虎發明了一個詞叫“爆速化”,是否能在競爭中佔得先機,速度確實非常關鍵。

從這個角度來看,所謂的系統整合商,他們的工作真是有點過時了呀。即使過時了但仍然繼續工作還是完全放棄?我不知他們該如何選擇。但是,可以肯定地說,他們與那些真正能夠發揮實力和能力的工程師的差距將越來越大。

出處:《engineer type 對松本行弘的訪談

歡迎閱讀《未來這五年,軟體工程師如何安身立命?(下)》

相關文章