本期訪談對象@許式偉,七牛云存儲CEO,國內Go語言圈領軍人物,ECUG社區(qū)發(fā)起人。許式偉的經歷頗有傳奇性,大學時就有“C狂”外號的他,憑一份手寫簡歷成功應聘金山,兩年后成長為首席架構師,領導WPS 2005長達3年的研發(fā)。2006年,公司從軟件向互聯(lián)網轉型,許式偉建立金山實驗室,以技術總監(jiān)身份主導分布式存儲開發(fā)。2009年加入盛大創(chuàng)新院,成功推出盛大網盤和盛大云之后,于2011年創(chuàng)立七牛云存儲,專注企業(yè)級存儲服務。
在某技術大會的間隙,我第一次見到許式偉。連日出差輾轉,他看上去略微有些疲倦,并無CEO的架子,只是話極少。我覺得有些冷場,怕被他拒絕,硬著頭皮稀里嘩啦說了一堆。素知他低調,未曾想技術范兒到如此,于是生出不少好奇:在技術上追求極致的人,難免會陷入自我的世界而不自知,他在工作中到底會怎樣思考及行事?內心與現(xiàn)實世界的連接又是如何建立?從技術大牛到創(chuàng)業(yè)公司CEO,產品、市場、管理的坎,分別都是在他職業(yè)生涯的哪些階段,用什么方式跨過去的?
帶著這些疑問,我細細看過了他曾經的演講和采訪,不禁平添許多佩服。敏于思考、勤于實踐、不迷信權威、不盲目跟風,早在許式偉求學階段,就已經發(fā)展出獨立的心智模型,并在對理性世界的探索中臻于成熟。從他的行為決斷中,能很容易找到內心自信的痕跡,例如在Go語法特性還未穩(wěn)定時,就選其作為七牛服務端的主體語言。這些異于常人、甚至看上去冒險的決定,當你足夠了解他之后,自會明白背后的深思熟慮。一個人的心智模型,到底會在多大程度上決定他的未來走向?斷斷續(xù)續(xù),我寫下3209字,包含了71個問題的提綱,決心把這好奇窮盡。
在另一場技術會議舉辦地的酒店大堂,我和剛結束完演講的許式偉碰面,他中午才到北京,第二天一早要回上海。我們從下午4點40分,一直聊到晚上10點,其間他還借著吃飯時間安插了一場面試。井井有條的忙碌中,能看出些他平日的行事風格。創(chuàng)業(yè)3年,從精于底層技術,到把核心技術產品化、服務化,再到讓15萬企業(yè)用戶為此買單,許式偉帶領七牛,在競爭激烈的云計算領域闖出了一條新路。
這同時也是一個典型技術人的理想實現(xiàn)之路。扛過國產軟件研發(fā)的大旗,忍受過在Office和盜版夾擊下的艱難求生,經歷過公司轉型和個人轉型交織的洗禮,軟件時代的技術人注定逃不開在逆境中成長的命運。曾奮斗在同一戰(zhàn)壕的金山人大多進了游戲行業(yè),許式偉卻始終獨愛基礎研發(fā)。從產品掌舵人,到公司掌舵人,他已逆流而上行了十一年,在轉向順流的下一站,等待他的會是責任更重的行業(yè)掌舵人。
技術人攻略:七牛是國內第一家選Go語言做服務端的公司,你也曾多次談到選擇Go的理由,創(chuàng)業(yè)公司做這種重大決策要冒很大風險,能不能談談做這些決策背后的思路?
蠻多人質疑七牛,為什么早在2011年,Go的語法還沒完全穩(wěn)定下來的情況下,選擇Go作為存儲服務端的主體語言。這種看上去激進和冒險的決定,實際上經過了嚴格的論證過程,并不是隨意為之。我一直認為:選擇和信息的對稱程度有關系。當你越不了解一個東西,越會趨向選擇保守性的方案,而當你對某個領域了解得足夠透徹,你的決策過程會非常自然。
我做決策前,會先試圖了解整個背景,看別人一般怎么做,有哪些新興的idea,這些idea是不是靠譜,如果我來做,會傾向于往哪個方向走。當你深入研究了新技術的思考方式,以及它要解決的問題,就會知道它和自己要解決的問題有多大的相關性。這就要求你具備嚴謹的思維方式,在很多人眼里,嚴謹是古板的,會扼殺創(chuàng)新。但在我看來,嚴謹不是創(chuàng)新的對立面,而是創(chuàng)新的基礎。奇思妙想再好,如果不經過嚴謹的推理過程,就無法變成行動力。用這樣的方式分析,有可能會出現(xiàn)一些比較大膽的選擇,但其實并不是隨意決定。如果你僅僅知道一些名詞,不了解背后的具體原理,必然會傾向于選最保守的方案。
我曾多次公開分享過Go語言的亮點,包括它的并發(fā)編程模型、對軟件工程的支持,以及對編程哲學的重塑。在我看來,Go對并發(fā)與分布式的支持算不上特別,所有新興的語言也都有工程化的思想,所以編程哲學的重塑才是Go語言獨樹一幟的根本原因,其它語言仍難以擺脫OOP或函數式編程的烙印,只有Go完全放棄了這些,對編程范式重新思考,對熱門的面向對象編程提供極度簡約但卻完備的支持。Go把其全新的編程理念,稱為面向連接的語言。作為一名老程序員,我認為Go的編程哲學獨具魅力,超越其它新興語言。
前VMware云平臺的首席技術官Derek Collison,曾在2012年斷言Go語言將在兩年內制霸云計算。我認為他的說法略有激進,但和實際的發(fā)展趨勢吻合,Docker、CoreOS等新的云計算基礎設施都基于Go。在我看來,Go是互聯(lián)網時代的C語言,不僅會制霸云計算,10年內將會制霸整個IT領域。