中华网财经 发表于:14年11月21日 14:31 [来稿] DOIT.com.cn
文:Gracia (本文为原创内容,部分或全文转载均需经过作者授权,并保留完整的作者信息和技术人攻略介绍。)
导语:本期访谈对象@许式伟,七牛云存储CEO,国内Go语言圈领军人物,ECUG社区发起人。许式伟的经历颇有传奇性,大学时就有“C狂”外号的他,凭一份手写简历成功应聘金山,两年后成长为首席架构师,领导WPS 2005长达3年的研发。2006年,公司从软件向互联网转型,许式伟建立金山实验室,以技术总监身份主导分布式存储开发。2009年加入盛大创新院,成功推出盛大网盘和盛大云之后,于2011年创立七牛云存储,专注企业级存储服务。
在某技术大会的间隙,我第一次见到许式伟。连日出差辗转,他看上去略微有些疲倦,并无CEO的架子,只是话极少。我觉得有些冷场,怕被他拒绝,硬着头皮稀里哗啦说了一堆。素知他低调,未曾想技术范儿到如此,于是生出不少好奇:在技术上追求极致的人,难免会陷入自我的世界而不自知,他在工作中到底会怎样思考及行事?内心与现实世界的连接又是如何建立?从技术大牛到创业公司CEO,产品、市场、管理的坎,分别都是在他职业生涯的哪些阶段,用什么方式跨过去的?
带着这些疑问,我细细看过了他曾经的演讲和采访,不禁平添许多佩服。敏于思考、勤于实践、不迷信权威、不盲目跟风,早在许式伟求学阶段,就已经发展出独立的心智模型,并在对理性世界的探索中臻于成熟。从他的行为决断中,能很容易找到内心自信的痕迹,例如在Go语法特性还未稳定时,就选其作为七牛服务端的主体语言。这些异于常人、甚至看上去冒险的决定,当你足够了解他之后,自会明白背后的深思熟虑。一个人的心智模型,到底会在多大程度上决定他的未来走向?断断续续,我写下3209字,包含了71个问题的提纲,决心把这好奇穷尽。
在另一场技术会议举办地的酒店大堂,我和刚结束完演讲的许式伟碰面,他中午才到北京,第二天一早要回上海。我们从下午4点40分,一直聊到晚上10点,其间他还借着吃饭时间安插了一场面试。井井有条的忙碌中,能看出些他平日的行事风格。创业3年,从精于底层技术,到把核心技术产品化、服务化,再到让15万企业用户为此买单,许式伟带领七牛,在竞争激烈的云计算领域闯出了一条新路。
这同时也是一个典型技术人的理想实现之路。扛过国产软件研发的大旗,忍受过在Office和盗版夹击下的艰难求生,经历过公司转型和个人转型交织的洗礼,软件时代的技术人注定逃不开在逆境中成长的命运。曾奋斗在同一战壕的金山人大多进了游戏行业,许式伟却始终独爱基础研发。从产品掌舵人,到公司掌舵人,他已逆流而上行了十一年,在转向顺流的下一站,等待他的会是责任更重的行业掌舵人。
注:本文大部分观点及内容属首次发表,访者在其它场合阐述过的重要观点,在文中以标注形式给出。
技术人攻略:七牛是国内第一家选Go语言做服务端的公司,你也曾多次谈到选择Go的理由,创业公司做这种重大决策要冒很大风险,能不能谈谈做这些决策背后的思路?
蛮多人质疑七牛,为什么早在2011年,Go的语法还没完全稳定下来的情况下,选择Go作为存储服务端的主体语言。这种看上去激进和冒险的决定,实际上经过了严格的论证过程,并不是随意为之。我一直认为:选择和信息的对称程度有关系。当你越不了解一个东西,越会趋向选择保守性的方案,而当你对某个领域了解得足够透彻,你的决策过程会非常自然。
我做决策前,会先试图了解整个背景,看别人一般怎么做,有哪些新兴的idea,这些idea是不是靠谱,如果我来做,会倾向于往哪个方向走。当你深入研究了新技术的思考方式,以及它要解决的问题,就会知道它和自己要解决的问题有多大的相关性。这就要求你具备严谨的思维方式,在很多人眼里,严谨是古板的,会扼杀创新。但在我看来,严谨不是创新的对立面,而是创新的基础。奇思妙想再好,如果不经过严谨的推理过程,就无法变成行动力。用这样的方式分析,有可能会出现一些比较大胆的选择,但其实并不是随意决定。如果你仅仅知道一些名词,不了解背后的具体原理,必然会倾向于选最保守的方案。
我曾多次公开分享过Go语言的亮点,包括它的并发编程模型、对软件工程的支持,以及对编程哲学的重塑。在我看来,Go对并发与分布式的支持算不上特别,所有新兴的语言也都有工程化的思想,所以编程哲学的重塑才是Go语言独树一帜的根本原因,其它语言仍难以摆脱OOP或函数式编程的烙印,只有Go完全放弃了这些,对编程范式重新思考,对热门的面向对象编程提供极度简约但却完备的支持。Go把其全新的编程理念,称为面向连接的语言。作为一名老程序员,我认为Go的编程哲学独具魅力,超越其它新兴语言。
前VMware云平台的首席技术官Derek Collison,曾在2012年断言Go语言将在两年内制霸云计算。我认为他的说法略有激进,但和实际的发展趋势吻合,Docker、CoreOS等新的云计算基础设施都基于Go。在我看来,Go是互联网时代的C语言,不仅会制霸云计算,10年内将会制霸整个IT领域。