未來這五年,軟件工程師如何安身立命(上)
近年來,伴隨著智能手機(jī)的普及、數(shù)字市場(chǎng)的繁榮,我們身邊正發(fā)生著日新月異的變化。作為一個(gè)與各領(lǐng)域關(guān)系密切的行業(yè),軟件開發(fā)模式又在發(fā)生著那些轉(zhuǎn)變呢? Ruby之父松本行弘的新書《代碼的未來》,將為大家揭開其中的真相。松本行弘眼中的軟件開發(fā)行業(yè)的未來,到底是怎樣的?總編輯伊藤健吾探訪了位于島根縣的松江開源研究室。
Ruby / mruby開發(fā)者
松本行弘 (@yukihiro_matz)
Ruby語言發(fā)明者,亦是亞洲首屈一指的編程語言發(fā)明者。現(xiàn)兼任網(wǎng)絡(luò)應(yīng)用通信研究所(NaCl)研究員、樂天技術(shù)研究所研究員、Heroku首席架構(gòu)師等。昵稱“Matz”。討厭東京,喜歡溫泉。
伊藤:感謝您百忙之中接受我們的訪談。最近,我拜讀了您的新書《代碼的未來》,請(qǐng)您先談一下代碼以及軟件工程師們的未來吧。
Matz:這還真是有點(diǎn)不好回答呀……不過,非常感謝您閱讀拙著。
伊藤:在本書中,您詳細(xì)敘述了您對(duì)各類開發(fā)語言、程序設(shè)計(jì)方法的過去、現(xiàn)在以及未來的看法。在此,想請(qǐng)您談一下您是如何看待軟件行業(yè)的現(xiàn)狀的。它的本質(zhì)是否發(fā)生了變化?軟件開發(fā)的模式是否正在發(fā)生轉(zhuǎn)變呢?
Matz:在書中我也提到過,預(yù)測(cè)高科技的發(fā)展趨勢(shì)并不難,我認(rèn)為,計(jì)算機(jī)領(lǐng)域在未來的一段時(shí)間里應(yīng)該還會(huì)繼續(xù)遵循摩爾定律發(fā)展。或許明年會(huì)出現(xiàn)可供實(shí)際應(yīng)用的量子計(jì)算機(jī),那樣一來,迄今為止的一切可能都要顛覆重來(笑)。不過,根據(jù)摩爾定律,計(jì)算機(jī)的價(jià)格會(huì)更低、性能會(huì)更好、容量會(huì)更大,這些基本走向應(yīng)該是不會(huì)變的。但是,這幾年我已經(jīng)感覺到方向開始發(fā)生變化了。這大概是因?yàn)椋殡S著硬件的發(fā)展,軟件開發(fā)勢(shì)必也要進(jìn)行一些調(diào)整。
伴隨著多核技術(shù)和云計(jì)算的興起,軟件開發(fā)也在發(fā)生變化
Matz:大約20年前,我設(shè)計(jì)了Ruby語言(編輯注:1993年開發(fā)),這門20年前開發(fā)的語言即使在現(xiàn)在的電腦上運(yùn)行也依然能取得很高的性能。
這說明20年多年來,軟件的運(yùn)行環(huán)境沒有發(fā)生什么實(shí)質(zhì)性的變化,它們都在單一的電腦上運(yùn)行。近年來,CPU單核技術(shù)已經(jīng)提升乏力,取而代之的是CPU多核分散處理技術(shù)。這樣一來,此前開發(fā)的軟件就失去了本有的優(yōu)勢(shì)。從這一點(diǎn)來看開發(fā)方法的調(diào)整勢(shì)在必行。
松本先生認(rèn)為,軟件的運(yùn)行環(huán)境已經(jīng)很多年沒有變化了。
伊藤:您剛剛講的這些,在本書的最后一章“多核時(shí)代的程序設(shè)計(jì)”中也進(jìn)行了總結(jié)吧?
Matz:是的。不僅是多核技術(shù),云計(jì)算的發(fā)展?fàn)顩r基本上也是這樣的。在計(jì)算機(jī)中有多個(gè)CPU的話即為“多核”,在網(wǎng)絡(luò)中的話即為“云”。總之,預(yù)測(cè)軟件開發(fā)的未來的關(guān)鍵詞應(yīng)該集中體現(xiàn)為“如何運(yùn)用多臺(tái)計(jì)算機(jī)”。
伊藤:那么,在引入了多核技術(shù)和云計(jì)算之后,您認(rèn)為軟件開發(fā)者應(yīng)該如何改變工作方式呢?
Matz:就目前的變化來講,這10年間,基于Web的開發(fā)不斷增加,Web應(yīng)用的可擴(kuò)展性很強(qiáng),是一種適于分散設(shè)計(jì)的應(yīng)用架構(gòu),所以熟悉Web的人,對(duì)多核和云計(jì)算的概念也會(huì)比較熟悉。與只了解通用機(jī)架構(gòu)的工程師相比,他們應(yīng)該更容易適應(yīng)。
伊藤:在采訪從事Web服務(wù)和智能手機(jī)應(yīng)用開發(fā)的新興企業(yè)時(shí),我們感到,在這一兩年,利用PaaS和云技術(shù)從事服務(wù)開發(fā)的工程師在快速增加。
Matz:是的。我也認(rèn)為今后“公司在開發(fā)過程中不必購買主機(jī)的方式”會(huì)成為主流。而且,“不持有”這種思考方式不僅對(duì)開發(fā)很重要,對(duì)企業(yè)經(jīng)營也會(huì)產(chǎn)生重大影響。
邁向“持有”不是資產(chǎn)而是負(fù)債的時(shí)代
Matz:以前,“持有”被認(rèn)為是企業(yè)活力的源泉。擁有高性能通用機(jī)的公司能快速處理各種業(yè)務(wù),而無法購買昂貴的通用機(jī)的公司只能兀自打著算盤……
但是,如今“未持有”的一方反而有利。配備計(jì)算機(jī)硬件的話,收回成本需要5年,這期間必須讓機(jī)器充分運(yùn)轉(zhuǎn)、物盡其用。這種方式表面上看好像有利于壓縮成本,但實(shí)際上使用舊計(jì)算機(jī),會(huì)降低生產(chǎn)力,成本反而更高。
也就是說,現(xiàn)在我們已經(jīng)步入“持有不是資產(chǎn)而是負(fù)債”的時(shí)代。如果配備最先進(jìn)的設(shè)備,那些優(yōu)秀的工程師就可以進(jìn)行高效開發(fā),但仍然有一些人還在使用 3年前的舊機(jī)器,那也難怪僅僅編譯就需要一個(gè)小時(shí)(笑)。Heroku等云平臺(tái)的誕生,使得開發(fā)中“持有者的優(yōu)越感”蕩然無存。
另一方面,“不持有”的好處也體現(xiàn)在了商務(wù)上和開發(fā)上。比如,受其影響出現(xiàn)了許多新興企業(yè)。以前,想要?jiǎng)?chuàng)業(yè)必須具備一定數(shù)量的儲(chǔ)備資產(chǎn),用于向數(shù)據(jù)中心投資、向服務(wù)器租賃公司購買10臺(tái)服務(wù)器等。然而,現(xiàn)在只需要使用Heroku即可,最初的1節(jié)點(diǎn)是免費(fèi)的。這樣一來,創(chuàng)業(yè)之初,除了進(jìn)行開發(fā),程序員們會(huì)花一些時(shí)間以外,幾乎沒什么風(fēng)險(xiǎn)和成本。
我曾經(jīng)讀過美國投資公司Y Combinator的創(chuàng)立者保羅•格雷厄姆寫的一篇短文,其中有一段我深有同感――“現(xiàn)代的新興創(chuàng)業(yè)公司的團(tuán)隊(duì)人數(shù)很少,只要能掙夠供大家吃方便面的錢,他們便會(huì)開始新的挑戰(zhàn)”。這一斷言豈不妙哉!“不持有”的靈活性和快捷性,正是推動(dòng)有能力的人不斷挑戰(zhàn)的后盾。這一趨勢(shì)不僅只體現(xiàn)在新興公司內(nèi),從前年開始,這股風(fēng)潮已經(jīng)影響到了一些大企業(yè)。
在美國,迪斯尼和百思買等正是利用Ruby、Rails和Heroku,迅速地以低成本構(gòu)建起了本公司的服務(wù)體系。此前,只屬于投資公司的特權(quán)的“新服務(wù)開發(fā)的迅捷性”以及“開發(fā)的靈活性”已經(jīng)不再由他們獨(dú)享。
伊藤:日本的大企業(yè)、大開發(fā)公司的情況如何?
Matz:我沒有在大企業(yè)中供職,所以無法正確分析他們的動(dòng)向,但是從各種觀點(diǎn)來看,大家基本上都持樂觀態(tài)度。但是,作為一名旁觀者,我認(rèn)為從整體上來看形勢(shì)不容樂觀。
忽視了技術(shù)創(chuàng)新的“本質(zhì)優(yōu)點(diǎn)”的開發(fā)案例太多了。
伊藤:您為什么認(rèn)為軟件開發(fā)的前景不容樂觀?
Matz:傳統(tǒng)的軟件開發(fā)仍然是主流。雖說在安裝Web服務(wù)的最終環(huán)節(jié)中使用了Amazon的云服務(wù),但整個(gè)開發(fā)流程與過去沒什么不同。通常仍然是由沒寫過一行代碼的系統(tǒng)工程師來完成設(shè)計(jì)。一個(gè)軟件開發(fā)團(tuán)隊(duì)動(dòng)輒出動(dòng)十人,這種情況很多見。
這與剛才所說的“不持有主機(jī)所帶來的優(yōu)勢(shì)”完全相反。僅從皮毛上引入流行技術(shù)的開發(fā)案例并不少見。
我對(duì)“私有云”(又稱內(nèi)部云或企業(yè)云)感到無比失望。這是因?yàn)?,云服?wù)的最大優(yōu)點(diǎn)就是在網(wǎng)絡(luò)中使用多臺(tái)計(jì)算機(jī),而私有云的服務(wù)對(duì)象僅僅是公司內(nèi)部的若干臺(tái)計(jì)算機(jī)。這本質(zhì)上不還是“擁有自己的主機(jī)”嗎?這樣可不行啊。
松本行弘指出現(xiàn)在的軟件開發(fā)“只是表面上吸收了先進(jìn)科技的優(yōu)點(diǎn)”。
伊藤:看起來是在追隨最新的技術(shù)趨勢(shì),實(shí)際上卻忽視了本質(zhì)優(yōu)點(diǎn)的案例非常多。松本先生所說的“暗淡的未來”的其他體現(xiàn)還有哪些呢?
Matz:如今,BtoB的大規(guī)模開發(fā),新興企業(yè)的小軟件開發(fā)等不僅強(qiáng)調(diào)“不持有”,還非常重視開發(fā)速度。雅虎發(fā)明了一個(gè)詞叫“爆速化”,是否能在競(jìng)爭(zhēng)中占得先機(jī),速度確實(shí)非常關(guān)鍵。
從這個(gè)角度來看,所謂的系統(tǒng)集成商,他們的工作真是有點(diǎn)過時(shí)了呀。即使過時(shí)了但仍然繼續(xù)工作還是完全放棄?我不知他們?cè)撊绾芜x擇。但是,可以肯定地說,他們與那些真正能夠發(fā)揮實(shí)力和能力的工程師的差距將越來越大。



























