專訪Facebook HipHop作者/阿里研究員趙海平:生物與計算機交織的獨特人生
3 月 26 日,杭州的天陰沉沉,這是一種山色空蒙雨亦奇的美麗,還是霧靄籠罩下的怪異,對于來訪阿里巴巴西溪園區的人們來說,沒人關心這些。人們行色匆匆,興奮地往各自目的地奔赴而去。我也來不及細思這些,因為今天要和剛從 Facebook 來到阿里的趙海平聊天。
就語言之爭,趙海平稱,有人會去爭論錘子和斧子哪更好使嗎?它不是要根據你做的事來定嗎?
趙海平是非常著名的軟件工程師,曾在微軟工作過。2007 年加入不到 50 位軟件工程師的 Facebook(是第一位中國工程師),期間他創建了 HipHop 項目。HipHop 可以將 PHP 腳本代碼先轉換成抽象語法樹(AST),之后再轉換成優化的 C++ 代碼,使其速度提高 5 到 6 倍,為公司節省了數十億美元。2015 年 3 月他回到中國,加入阿里巴巴技術保障部,重點攻克阿里在軟件性能以及 Java 使用過程中遇到的技術問題。
采訪在園區圖書館進行,四周書籍環繞長窗落地,趙海平看上去顯然剛從另外一場繁忙的事務中抽身過來,但在這場長達 1 小時 47 分鐘的采訪中,他一直神采奕奕、興致高昂地談論了各種話題:小時候的趣事、生物和計算機間的痛苦抉擇、HipHop 項目中的艱辛……
“計算器有什么好學的?”
趙海平中學時代就讀于秦皇島市山海關第一中學,學校雖然非常小,但很特別——恰好在天下第一關腳下,所以長城就成了這個學校的一面校墻,坐在部分班級里甚至能領略到山海關的雄姿。
在他的那個時代,計算機還是個稀罕物,別說是高中,可能在大學,計算機都很少見。所以當他們北大物理系畢業的校長組織數學好的同學,參加學習計算機的課外活動時,趙海平很是疑惑,“計算器?這個需要學嗎?”事后趙海平才知道,他把“計算機”聽成“計算器”。不過那個時候他真不知道什么是計算機,并且《計算機報》也是在幾年后才出來,就連當初學習的時候,整個書店也只有一兩本計算機相關的書籍,而內容早被他們翻爛。
起初學習的過程很原始,“一開始連計算機都沒有,學校雖然已經去買,但要等很長時間。所以學 Basic 語言時,完全不知道在干嗎,就純粹硬學,學到最后連循環都學了,還沒見到計算機。”后來計算機到了——是 Laser-310,趙海平對這個記得特別清楚,談到這里的時候,他還繪聲繪色地形容“一按那個鍵盤,還‘嗶啵、嗶啵’響”。趙海平回顧稱,當時的游戲也很簡單,簡單到只有小人在屏幕上又唱又跳。放到現在看這哪是游戲,但在那個時候覺得這很奇特。
小時候學計算機發生了兩件事讓趙海平記憶猶新,一是利用匯編命令打印系統。大家都知道利用匯編命令可以把刪掉的文件再找回來,那個時候的趙海平覺得這很牛,于是去找匯編命令然后到學校實踐,然而卻把整個系統都給打印了。他至今仍很興奮地說到:“蘋果有反匯編的工具,它可以不斷地反匯編操作系統,所以一邊反匯編一邊打印。機房老師不知道這事,但機器卻一直在打印,打印了一宿,把機房的一摞紙全用了,而那個時候的打印紙特別貴……”
另一件事則是,“廢寢忘食”地輸入飛機。當時整個學校只有一臺計算機,趙海平每天中午都是趕緊扒完飯,省出一兩個小時的時間去機房。有次在機房按照雜志上的坐標輸入顯示飛機。“圖的打印很簡單,實際上就是從這一點到另一點畫一條線,但是它有很多條線,最后能畫出一個特別漂亮的飛機圖。”沒想到快要結束時,有人碰掉了把電線,內容全沒了,大家面面相覷,又心有不甘。于是第二天又跑到機房重新輸入一遍,最后看著蘋果綠顏色的屏幕上呈現的飛機,趙海平覺得那種成功的感覺至今仍很興奮和微妙。
抉擇:繼續生物 or 計算機?痛苦!
如此喜愛計算機,為什么最后去了北大生物專業?這應該是很多人的疑惑。趙海平稱,沒有選擇最愛的計算機專業有兩個原因:一個是生物在當時太熱門——21 世紀是生物的世紀,而當時趙海平高考的分數恰恰很高,“要低一點就能報計算機系,但高一點的全都直接進生物系,所以當時各個地方的高分學生都去學生物了。”第二個原因則是大家對計算機的認識。“那個時候還認為計算機只是一個工具,不管做什么,你都會‘玩到’計算機。”大家都把計算機當玩具,不是一個正兒八經的專業。
不過當生物學了很長時間之后,趙海平發現自己還是喜歡計算機,他這么描述當時自己的感受:“我不喜歡生物,也做不好生物。身邊學生物的人可能不比我更聰明,但他們做得比我好,因為他們熱愛這個專業,愿意花很多時間去看文獻做實驗。我更多的是在生物實驗室里寫程序,找與計算機相關的活……這是一種很別扭的感覺。”于是他決定踏上痛苦的轉行之路。
之所以痛苦,主要是不愿意就這么放棄生物,用趙海平的話來講就是“生物系的機會也很寶貴,而且已經學了這么久,又不確定自己的將來做計算機會不會更有意思?”另一方面則是生物實驗室的臺灣導師對趙海平格外青睞,他知道趙海平很聰明,但心思并沒放在生物上,不過他仍然希望趙海平能夠繼續把博士讀完……
這些因素讓趙海平一直很痛苦地思考這個問題,直到一件事讓他下定決心轉專業。那時候他已在美國紐約大學,“一上選修的計算機課感覺喜歡的不得了,聽老師講東西都有一種觸動——原來是這樣。”后來選修課的老師也鼓勵他去學計算機,于是他下定決心,并整理自己做過的小項目去申請普林斯頓大學計算機碩士。
半聽半睡狀態下,突然舉手“老師這不對”
進入普林斯頓計算機系后,趙海平如魚得水,門門功課都是A+,學習過程更像是在印證他以前的實踐,并補上自學摸索中所缺失的東西。“來到普林斯頓后感覺特別好,不僅僅是因為終于學了自己喜愛的專業,還有機會和非常優秀的人在一起,覺得特別快樂。”
談起在普林斯頓最大的感觸,趙海平稱,好幾個同學都是當年奧林匹克金牌得主,雖然年齡較小,但都非常聰明和優秀。“所以我們工作一定要進入一家好公司,因為跟優秀的人在一起工作,就自動地有那種很快樂的感覺。”
在普林斯頓學計算機的趙海平同時也很瘋狂:經常打游戲、做小項目,有次到第二天早上五六點才睡,但發現八點還有課,于是他在那半聽半睡,聽到半途突然醒了,舉個手說老師這不對……在這樣的精神狀態下,他還不忘給老師挑錯,而老師也覺得,這學生挺神奇,一邊睡還一邊提問題。
原本趙海平打算讀完計算機碩士,然后再把生物學博士讀完,但在畢業前的最后一個星期,他就拿到了四個 Job Offer。是讀博,還是工作?趙海平又陷入了抉擇,但最后還是聽取了生物實驗室同學先工作的建議。
“現在回想起來,這是在騙自己。”
為什么?
“一旦干上計算機這行,生物博士對我并不是特別的重要。”趙海平如此坦言。
不后悔讀生物,非常感謝生物的訓練教他如何系統“偷金子”
對于趙海平改行學計算機,不少人都有誤會,因為那個時候計算機恰好也火了,很多人以為他是因為計算機火了才改行。“其實真的不是這樣子,那個時候 MBA 更火,工資也更高。也有朋友勸我去讀 MBA,但經驗告訴我一定要做自己喜歡的事,不能再跑到第二個不喜歡的行業,不然這輩子就廢了。”而這也是趙海平改行之后,為什么老是如饑似渴地去學習和工作的原因,因為他老覺得耽誤的時間特別長,心理上老想去補償。
但對于讀了這些年生物,趙海平并不后悔,他稱讀生物的那些訓練非常有用,對他幫助很大。“它教會了我,怎樣系統地去解決一個問題,而不只是把這個問題解決。”趙海平非常善于舉例子,他打了個比方:如果我們是一群海盜,有一個島有很多金子。本科畢業的學生劃著船弄來一箱金子就很出色;但如果是博士畢業的學生去弄金子,除了弄來金子之外,他還必須帶來一句話才合格——沒必要再去那個島了,金子全被拉回來了。“這就是博士的訓練,它告訴你要系統化的去解決一個問題。等解決問題后,你已經看到問題的所有方面,等別人再想解決,你已經全部想到。”
趙海平放棄生物學博士學位,雖然有些許遺憾,但他慶幸的是這些訓練沒有白費。
微軟如日中天時去了 Facebook
2006 年前后,微軟如日中天、風頭正勁,而當時的 Facebook 全部工程師還不到 50 人,在這樣的情況下,趙海平離開微軟,去了前景仍不太明朗的 Facebook。
離開微軟,主要是兩個原因。一個是微軟當時的流程非常規范,強調人和人之間按部就班做事,非常條理化。這也許是大公司發展到一定階段的必由之路,但趙海平希望尋找節奏更快的平臺,“畢竟我在生物上已經耽誤 10 年了。”趙海平解釋到,“當時的微軟和硅谷公司在文化上還是有明顯差異的, 硅谷文化強調個人的主動發展遠遠大過公司給你規劃好的發展。”另外一個原因則是家庭因素,最終他來到了 Facebook。
Facebook 的經歷太獨特、珍貴
那個時候 Facebook 人特別少,只有 40 多個程序員,大家都叫工程師沒有分組,當時所有人都擠在一個特別擁擠的辦公室。桌子很小,彼此離的很近,出了問題,一吆喝就行。Facebook 用戶數增長的特別快,大家的工作也都圍繞著快速增長帶來的問題進行,“一旦有什么問題,大家就往上撲,你愿意解決什么就什么,特別的沒有章法。”趙海平稱,這恰恰和微軟形成一個鮮明的對比——毫無章法,亂到你有時候覺得微軟還不錯,它挺有章法。
趙海平在 Facebook 待了 8 年多,他稱無論是用戶的增長、公司上市的奇跡,還是 Facebook 對整個世界的影響,都太獨特。當初沒有人想到,至少趙海平以及他身邊的同事都沒想到 Facebook 會是今天這么大的一個規模,當時只是看到在不斷增長,并不知道增長之后意味著什么。獨特也還包括做項目的艱辛,“我們是被逼的把網絡和服務器做到極致,因為我們每省 0.1%,就是幾百萬美元,所以必須把東西做到最好。”
現在回頭看這些經歷真太特殊,當年坐你旁邊的人都成了高管,這是一種特別奇妙的感受,“像當年 Facebook 的的聯合創始之一 Dustin Moskovitz 就坐在我旁邊寫過程序,你現在讓他坐在我旁邊寫程序,不太可能!”但當時大家沒有想這么多,所有人都干的熱火朝天,討論問題可能會一直持續到十一二點,下班了也可能在工作——網頁怎么設計、后端應該怎么做…一大堆意見。
這么瘋狂的原因很簡單,一個是 Facebook 用戶不斷地增長,一直在鼓舞著大家;另一個則是這些人都非常優秀——哈佛、CMU、MIT、斯坦福…,每一個人都特別有才、特別有想法。
到阿里是想擁有另一段獨特的經歷
從 Facebook 到阿里,并不是一個很突然的決定。趙海平來之前,已經跟阿里技術保障的劉振飛、周明、畢玄聊過,對阿里已經有了整體的了解。
正式接觸是在 2014 年阿里 IPO 前后,阿里組團來美國,王堅博士和趙海平深入聊了聊。發現技術很對口,需要解決的問題也很新鮮——Java、JVM 從來沒做過。他又來了趟杭州,發現杭州挺美、阿里員工腳踏實地的公司文化很符合他的性格,對阿里很有好感。
而讓他下定決心回國則是阿里面臨的技術難題和挑戰。“在 Facebook 經歷非常特殊,而阿里就更特殊——大規模的交易、單天的交易量、雙十一的交易量,不是任何一家美國公司有的,這種獨特性是我尋找的東西。當你去解決這樣的技術難題時,你就會有新的認識:這個量級的問題可以這樣解決,提升一個量級,就要用新的解決方法,最后你就能看到問題的全部。”體會不同角度去看不同的技術難題,對趙海平來說恰恰就是最享受的一件事情。
HipHop 不為人知的故事:一開始野心并沒有那么大
其實最初做 HipHop 項目時,他們的野心并沒有那么大,不是一定非要把它轉換成C++,但后來發現,這么做確實可以提高性能,所以就思考是否可以用工具把整個網站都編譯。
那時 Facebook 內部有好幾個項目都處于半競爭關系,每個人都仁者見仁智者見智,有人想改變 PHP 引擎實現,有人想在 PHP 應用層做調整,有人說可以轉成 Java,而趙海平則傾向于保持 PHP 不變。“之所以傾向于不變,是之前大家已經嘗試過將 PHP 轉換成其它語言(Python),但四五個人轉,根本趕不上二三十個人寫 Code 的速度。”另外,團隊里有很多 PHP 專家,突然改成 Java,讓人怎么寫代碼?于是趙海平一直在這個領域探索,到最后只剩下 HipHop 和轉 Java 兩種方案。這時大家意見又不一,到底用哪個?討論問題也有了情緒,怎么辦?用數字說話!誰性能提高大,就用誰,最后 HipHop 勝出。
線上執行的時候,趙海平內心很忐忑,很怕出現什么問題。“因為你改的是底層,只要有一個新問題出來,大家第一反應就是這里出了 bug,事實上十有八九都是應用本身的問題。”當時趙海平對其他團隊的承諾是,有任何問題 24 小時內一定響應。有一年感恩節,正在別人家做客的趙海平,一個電話就立刻趕回去調試,雖然事后證明也不是底層的問題。“當時我跟團隊說,我們要有阿信賣魚的精神,不論是哪里的問題,我們都要幫他們 debug,贏得別人的信賴。”對于這些,趙海平雖然感覺非常辛苦,但卻又感覺很爽,因為當時他們可能是最熟悉全部應用的團隊。
再回首 HipHop,趙海平感慨項目非常艱辛。“最累的時候,我開車都在想怎么寫 Code,一邊開車一邊想,到了公司只是把腦子里想好的寫下來而已。那個時候別人跟我說話,我都不大反應的過來,因為腦子一直在想這個東西。沒有辦法,面鋪的太大了,等于整個程序語言的所有都要去實現。有時也想偷點懶,想著這個數據庫函數這么冷門,肯定沒人調用,先不做它,結果第二天就有人來找你……”
雖然過程很痛苦,但痛并快樂著。趙海平找 Bug 每次都很快,半小時、一小時就能找到。但有一次 Bug 太底層,花了十幾個小時才找到,最后找到 Bug 跟大家解釋怎么回事時,“大家聽到我說為什么還都聽不明白時,那快樂真的很難用語言形容。”趙海平接著補充到,“其實人有的時候就是喜歡解決大問題、大影響的那種快感,希望自己做得工作特別有意義——擲地有聲的那種。”
性能優化要先剖析、迎著問題走、用數據說話
趙海平指出,如果有些活是重復性的,一定要思考怎么才能偷點懶,花點時間去想,你就能比別人快。
談到即將在阿里的工作,趙海平稱,他不會急于跳進很具體的東西里去優化。他首先會從整體上做剖析,分析阿里各方面軟件的運行情況——究竟用了多少資源。看清楚問題,才能鉆進去優化,也只有這樣才會事倍功半,才能真的找到最大優化的那個點。
不做剖析就去優化是一個誤區,你花了特別大力氣優化,速度提高一百、一千倍,但整體上可能還是沒有效果,因為這一塊性能只占整體的 0.1%,你提高一萬倍、甚至把資源占用降為零,最后你也只能提高 0.1%。
優化一定要用數據、效果說話,有個誤區是有人會認為某種語言就是比其他語言強,所以優化上總是選擇某語言。但在實際場景中不能這樣,比如:不是說 C++ 一定會比 Java 執行的快,在有的情況下 C++ 的速度可能和 Java 一樣,甚至比它慢。所以在優化的時候,一定要用數據說話,不能憑著自己的技術信仰做決策。優化的方式可能仁者見仁智者見智,但最關鍵的是大家認同這個問題,然后用各種方法試,誰的效果好,就用誰。
在性能優化上,一定要迎著問題走。不少人看到問題后,會想辦法繞開問題——不調用或其它做法,但專家會迎著走,想辦法解決問題。比如說網絡延遲很高,專家會鉆進去尋找延遲的原因,網卡有問題就解決網卡,軟件有問題就改軟件。趙海平總結到:“越迎著問題,問題可能解決的就越好。”
優化上的取舍難、行政難
在性能優化上除了一些誤區之外,還有一些其他困難。其中一個就是取舍的問題,知道怎么優化,但是有代價,比如提升了一個地方的性能,可能影響了另一處的性能;或者今年和明年的情況完全不一樣,今年是利大于弊,但第二年可能就弊大于利,這是取舍難問題,要想解決就必須時時跟蹤系統不斷地做調整。
趙海平看來,最難的就是整體性慢。“整體性慢就是哪都不慢那么多,但是哪都慢,這才是最要命的一種情況。”如果遇到這種情況,就要仔細想想更底層的東西,究竟是什么原因讓它普及性的慢?這個時候也許你能發現更大的問題。
趙海平比喻稱,這就像有些病人的病根很深,所以表現出各種各樣的癥狀,但各種癥狀的根可能是在一個地方。“這就是我想說的:要想系統地提高性能,有時候要做架構上的大調整,進行深入的過程性優化,而不是一個具體、很有局限性的優化。”不過走到這一步,就會出現新的挑戰,“不僅僅是技術上的難,還可能會出現行政上難——你如何去說服別人把整個系統做大的調整。”趙海平感慨到,“這可能會影響到線上的服務質量,換那么多新東西,大家也不知道能省多少,這個有時很難做。”
很多技術專家擅長解決技術上難題,那遇到行政上難如何解決?趙海平也給出了他的看法。“項目剛開始野心做得不要太大,從小的地方做起,讓人家看到一些實實在在的好處,然后你就能做下去。而能滾多大,就要看它是不是每一步都能帶來很大利益,如果滾不大,就別做了。因為你確實沒有辦法去說服別人,不能說眼下沒有利益,我現在花錢,過一年省錢…這個很難實現。”
對語言之爭的看法:“有人會去爭論錘子和斧子哪個更好使嗎?”
聊到程序員對語言信仰的問題,趙海平稱,不光國內,在美國也一模一樣,這個可能就是程序員的特點,喜歡和人爭論哪個語言更好用。從某種意義上來說語言也是一個流派,喜歡同一個語言的人,往往會有比較明顯的共同點。
但他很疑惑語言之爭:“有人會去爭論錘子和斧子哪個更好使嗎?它不是要根據你做的事來定嗎?”趙海平認為:“不同的語言像錘子和斧子一樣,沒有哪個可以把所有的問題都解決好,每一個語言都是在解決某一個特定的問題里有它的長處。這個恰恰是語言創造者的思路,他有自己認定的語言要解決對應問題的范疇。你偏要去爭論某語言就是絕對的通殺,比其他語言樣樣都好,這個肯定不對。當然你可以有個人的喜好,但不能非要改變別人的想法,因為語言本來就是百花齊放、百家爭鳴。”他還指出,語言之間的差異,只有在解決某些具體問題時可以比較出來,而這些恰恰就是語言獨到的地方。
如果非要說哪個語言類似于萬能語言的角色,趙海平認為目前應該還是C和C++。“它很底層,不做太多假設。越是這樣的語言,它越更加通用一些。只要語言做了假設,它就會更上層一些;只要有假設,就會放棄掉一些東西,因為假設讓它更加有局限性。”像 Java、PHP、Python 等其他語言,它都提前實現了一些東西。在幫你提前實現東西時,它已經做了假設。“比如說 Java Applet 定義已經做了假設,PHP 里數據類型已經做了假設,這實際上相當于定了一個框架,只能用它那一套內存管理和執行環境。但在C和 C++ 里面沒有這些問題,你自己可以定義這些東西。這也就是為什么越往后端的東西,就越要拿C和 C++ 寫的原因,因為對系統要求獨特,不像高層的軟件用這些假設沒問題,底層的東西很多時候是不能用假設。”
但缺點也在這里——你要花時間定義,可能你定義來定義去還沒有人家 Java、PHP 或 Python 等其他語言好。
對開源的認識和思考
趙海平的 HipHop 給 Facebook 帶來了很大影響,為了惠及他人和社區,最后把它開源了。那他對開源有哪些認識和思考?
就開源還是不開源,趙海平拿 Facebook 和谷歌舉例。他稱,Facebook 開源做的特別多,而 Google 做得挺少。主要原因是 Google 有很多關鍵、核心的技術不能開源,因為一旦開源可能會給它帶來競爭壓力,而 Facebook 沒有這種壓力,因為就算拿走它的源代碼,也不意味著能夠復制出一個 Facebook。所以趙海平認為,只要公司不受影響,你就可以開源。而開源帶來的驚喜和好處很多,“如果很多人關注你項目,至少說明做的方向是對的,別人拿去執行,反饋過來的問題相當于幫你做 QA。如果人家特別感興趣,深入研究、甚至幫你做修正,這等于免費幫你打工……”趙海平還發自內心地談到,很多開源社區的人思考問題方式很獨特,和他們聊天很能擴展你視野。
總體上來說,開源是一個利大于弊的事情,雖然它可能會耗費你很多時間和精力,但在耽誤時間的背后,它有巨大價值:學術上帶來名氣、能提高你的業務水平(別人的指指點點就是學習和提高的過程),而從大的角度來看,也給公司創造了技術開放、樂于回饋的良好形象。
專注才能走得更遠
在很多人眼中,趙海平已然是一名偉大的計算機科學家,所以在采訪中記者也就他如何走到今天的高度以及生活中的一些習慣進行了交流。
趙海平很謙遜的表示:“什么是偉大的科學家?偉大的科學家必須能夠為科技帶來革命性的變化,例如創造了新型的語言或操作系統,我只是做了一個項目,而且只是對 Facebook 意義很大,所以還差很遠。”他又繼續分享到,不過要想做成事,心態很重要。“我來的時候就跟同事聊天說,要忘記過去的成績,腳踏實地做事,可能你比別人有經驗,但還是要扎扎實實展開工作,要把自己的注意力轉移到要解決的技術難題上、轉移到個人的知識擴展上。你專心的去做這些事情,不去想太多其他事情時,可能會走的更遠,更好。”
他還就專業的程序員話題舉例,“我不相信麥迪(Tracy McGrady)在最后投三分球時,他腦子里會想比分、輸贏、會去想這場比賽能給他帶來多少獎金,他不會去想這些,只要想了三分球就投不進去。他要的是那種完全投入的境界和狀態,只有在那種巔峰的狀態,他才能把球打的最好。”任何一個職業運動員都懂得這一點,專業的程序員也同樣需要做到。只要做得好,別人就會認可,一切東西都會水到渠成。
高效率訣竅:一整段時間非常重要
一個人要想取得成就,一方面跟他的天賦有關,另一方面他的習慣也不可避免地起了部分決定性作用。在個人習慣上,趙海平非常強調專心、強調一整段時間。他寫程序的時候希望至少四個小時內不被打擾,他也不去看手機、Email、接打電話、參會等。這是一個高效率的訣竅,“因為寫程序是高度專注的腦力活動,你一被打擾就轉出去了,再轉回來不僅要花時間,而且這種轉換消耗特別大,所以要盡量避免或減少被打擾。這也是一個很好的用腦習慣,只要養成這個習慣,有的時候你會發現寫程序也是一種休息——當你進入狀態時,你不會覺得累。”
另外,每個人也要總結自己一套高效率的工作方式,比如說用什么樣的編輯器,在這個編輯器下敲什么樣的命令可以省時間,盡量多思考一下。“這方面我比較變態,我有很多的命令都是一個字母。‘啪’,敲一個字母命令就出來。”趙海平指出,并不是非得要這樣做,他只是想強調:如果有些活是重復性的,一定要思考怎么才能偷點懶,讓復雜的事情三兩下就做完,花點時間去想,你就能比別人快。
對在阿里的未來:會去思考怎樣做這些貢獻
在趙海平那封告別信中,他曾期待到,他想要中國成為軟件技術最好的地方,想要阿里成為最值得工作的地方。為了這個目標,他會怎么做或進行哪些努力?
趙海平稱,一方面希望把技術工作做好,期待能給阿里帶來整體性能的提高,能夠真的建立一整套剖析系統,大家都能夠根據這個系統做軟件上的調整,從而提高整體性能、節省機器。
另一方面希望帶動大家對技術的愛好,能夠帶動一批人、帶動氣氛,并且也期待有一幫好哥們。如果還能進一步的話,就做一些開源,給阿里創造開源的好形象,帶動整個中國的開源氛圍,提高各個公司對相關技術上的認識……
而在未來,他有可能也會做一些中美技術交流上的牽線搭橋。他在最后特別強調稱,“不希望大家把這話理解成我會做到這些,只是想和大家表明:我會去思考怎么樣去盡量做這些貢獻。
結束語
采訪最后,記者還就 2010 年 PHP 之父 Rasmus Lercbrf 對 HipHop 的一個評價,詢問了趙海平的看法。Rasmus Lercbrf 當時評論:不能把 HipHop 當做銀彈,它確實很酷,會成為某些網站很好的選擇,但對于很多 Web 應用而言,執行速度并不是主要因素,所以不能對任何項目都適用。
趙海平回應稱,Rasmus Lercbrf 說的非常正確。“他想說的意思就是:要先剖析你的軟件,然后再做性能提高,他表達的和我說的是一樣的。”他進一步解釋到,“之前 Facebook 軟件剖析發現 PHP 的 CPU 用的很多,所以 HipHop 才管用。但如果你剖析軟件,發現更多的時間花在網絡等待上,而沒有花什么 CPU,那么用 HipHop 怎么可能提高你的性能?”趙海平還表示,Rasmus Lercbrf 的評論說在了一個敏感的時刻——正好在我們發布時,這看起來似乎有點負面,但并不是這樣子。“他說的非常科學化,就是想告訴大家一定要完完全全理解你軟件,究竟是網絡時間,還是 CPU 時間,這是截然不同的兩個概念,在性能優化上也是截然不同的途徑去解決。”
本文選自程序員電子版 2015 年 4 月A刊。
留言列表