许式伟,这是 GVP 首位公布的超级大咖,这是一个所有中国 Gopher 无人不知的名字。无论是创建国内首批全面拥抱 Go 语言的七牛云,还是《 Go 语言编程》一书的编写,抑或是他独力发起并维护至今的 ECUG 社区,他的一切努力都在推动着 Go 语言的前进。
时至今日,他依然在坚持着。
Go 中国带着敬意和好奇采访了许式伟,传说中不善言谈的他在 Go 的问题上却格外健谈。关于语言、七牛、行业、社区、自己,这是一次真实而纯粹的交流。
关于语言
您的职业生涯尝试过 C、Java、Erlang、C++,最终选择了 Go,可以谈谈这几个语言各自的优劣吗?
C 的优点:简单直接,特性少,功能强。历史悠久,社区资源丰富。
C 的缺点:指针过于灵活,用户门槛高。手工管理内存心智负担高。对接口、闭包等高级特性表达上不够简洁。
C++ 优点:表达力极强,功能强大。兼容 C。
C++ 缺点:最复杂的语言,没有之一。指针过于灵活,用户门槛高。手工管理内存心智负担高。
Java 优点:中规中矩。程序员多,社区资源丰富。内存管理基于 GC,心智负担低。基于 VM 字节码,天然提供了跨平台的插件机制。
Java 缺点:语言 OO 流派痕迹明显,有些刻意。表达上有些死板,不够活泼(不是灵活)。
Erlang 优点:语言特性简洁,且易于高并发程序的编写。内存管理基于 GC,心智负担低。
Erlang 缺点:动态类型语言,工程质量保证的负担高。没有基础的 int 类型(只有 bigInt),计算性能低。语言小众,社区资源少。
Go 优点:简单直接,特性少,表达力强(不只是功能强),心智负担低。低学习门槛,容易写出高质量代码,投入产出比最高。语言特性稳定,可以预期除了增加泛型不会再出现其他大的调整。工程支持程度高(尤其包的版本管理能力加上后)。兼容 C。内建高并发支持。创始团队能力强,迭代快。
Go 缺点:还不支持泛型。兼容 C 在高并发的支持上做的还不够好。资源集中在服务端开发,桌面开发的社区资源少。
七牛自成立起就把 Go 语言做为核心语言,当时国内没有一家主流公司广泛使用,面对人才储备不足,没有成功案例的情况下有压力吗?面临最大的问题是什么?遇到过什么危机吗?
没有遇到过压力。早期 Go 人才少,这没错,但是竞争对手也少,喜欢 Go 的人都听过我们,愿意加入我们。大家在技术上的选择已经有共同认知,这说明很多内在的东西。人才和公司的辨识度都很高,所以招聘效率高。而且 Go 容易上手,哪怕没有学过,我们也不培训,直接上岗,通过代码评审在实战中纠正与提高。在这块几乎没有遇到什么问题。可能唯一有个问题是早期 Go 功能迭代快,也还没有发布 1.0 版本,版本间兼容性差。我们的对策也很简单,就是固定在一个 weekly 的版本,好像是 weekly-2011.6.23 吧。所有人都用这个版本,直到 Go 1.0 发布我们才升上来。Go 团队很人性化,提供了 gofix 程序可以自动升级代码到 1.0,所以我们基本没有遇到什么困难,更不用说危机。
现在越来越多的主流大公司开始转 Go,您有什么建议吗?在选型上什么场景适合使用 Go 语言,什么场景不适用或不推荐采用 Go 语言?
选 Go 其实没什么负担,也没什么好建议的,唯一建议就是及早入坑。早一天就是一天的生产力。当前桌面端开发还不太适合,其他都挺合适的。如果团队实力强,可以在游戏类的桌面开发进行尝试。我个人已经试过了,没有遇到大的障碍,技术已经成熟。当然如果不愿意吃螃蟹,那就建议再等等。
您 2012 年预测,Go 语言 10 年内会超过 C 和 Java,成为排行榜第一的语言。您认为 Go 语言成为排行榜第一的语言还需要哪些契机?
这只是一个时间问题。就像我经常说创业需要看十年一样,一个公司要成功普遍需要十年。这里十年是虚指,可能是 8 年,也可能是 12 年。Go 成功只花了不到 5 年,显著比其他语言快。Go 在语言设计上有登顶的潜质,目前看也仍然如此。如果非要说一个契机的话,我认为是 Go 进入桌面开发,有一个像 docker 和 kubernetes 这样的杀手级应用。桌面开发的人才远多于服务端开发,所以就算搞定所有服务端开发人员,这门语言仍然只能算 “小众”。
最近有没有看到让您眼前一亮的 Go 的项目。您认为现在 Go 的技术人想创业,什么业务最有潜力?
比较难出现像 docker 和 kubernetes 这样的杀手级应用。Go 技术人创业,和技术人创业是一样的,不会因为带上 Go 有多少加分。什么业务最有潜力有点命题作文的意思,这不太好,创业者最应该追求的是本心,我热爱什么,就去做什么,不要去理风口,去关心用户的问题。没有热爱,你根本坚持不下去。
预测 Go 语言会成就的下一个风口在什么领域?原因是什么。
大数据领域会有机会,但是 Hadoop 生态会有比较强的惯性,目前看也不容易。PingCAP 的 tidb 影响力不错,值得关注。但我个人觉得桌面侧反而是容易的,只是需要个契机。原因是,我觉得当前桌面开发人员最需要被拯救,他们的知识更迭太快,太痛苦了。
您跟七牛默默支持了很多 Go 的项目,包括 goproxy.cn,发起人来投稿才被更多人知道,这么正面的事情为什么选择低调处理。
我们支持,仅仅是因为想支持。我们希望大家知道的是我们有什么样的很棒的产品,而不是我们做了哪些好人好事。
关于七牛和云
七牛今年将 AI 和容器云产品线做了拆分,后续会将发力点放在哪条产品线上,还是准备有秘密武器?
我们分拆产品线是两个方面的考量。一个是让七牛更专注。一个是让这些业务有更大的独立发展空间。我曾经内部有说,希望七牛有一天会是一个创造 CEO 的公司,我们会孵化出很多独立业务。这仍然是我的梦想。我自己创办过金山实验室,也参与过盛大创新院,对怎么孵化业务有颇多的总结与反思。但是,当前的七牛不应该把心思放在孵化业务上,所以我们一个反思是要专注。至于我们发力点在什么地方,2020 年我们会对外去谈。当前还是先让子弹飞一会。
目前国内公有云市场遇到瓶颈期,2C 的消费互联网红利消失殆尽,在产业互联网领域七牛的优劣势是什么?
在产业互联网,七牛的优势是两点,一个是消费互联网的经验,这是很多做产业互联网希望沟通与学习的。二是探索比较早,我们内部在 2017 年就谈移动红利消失,提前布局产业互联网了。但这的确是一个非常痛苦的摸索过程。我内部经常用 “散、慢、繁” 来形容产业互联网的特征。“散” 是客户很分散,不像移动互联网,客户都在那里。看上去谁都是客户,但是一聊好像又不是那么完全对口。“慢” 是客户内部流程长,决策慢。“繁” 是客户已经有一堆传统 IT 供应商,被养得比较叼,各种定制需求,让你接也不是,不接也不是。最终最本质的优势还是必须建立在产品的竞争优势,和对客户的理解上。
关于自己
为什么突然想做七牛大学?定位是什么?是基于您个人和七牛的技术输出还是搭建平台?
七牛大学有几重意思。第一重意思是七牛人的大学,我接下来会让所有七牛人进来都参与培训,当然第一步是从技术人的培训做起。第二重的意思是我希望七牛从 IT 技术服务商,到业务咨询方。产业转型升级不是一个简单的 IT 技术问题,它是跨界融合,是产业 Know How 与 IT 技术的碰撞,这需要我们的服务能力也要升维。当然我们步子不会走得很快,关键是走扎实。所以我们第一步是从架构课的线下培训开始的。架构是我最擅长的领域,容易形成一个比较犀利的突破口。
您之前对技术和行业发展的预测都很精准,投的项目也赶上了快速发展的红利,有没有考虑做专业投资人?
投资人其实是很辛苦的,飞来飞去,我应该就是相对项目比较少的投资人,不太会做专业投资人。我自己的乐趣还是自己去参与到创造的过程中去,虽然投钱看着项目成功也很有乐趣。所以我应该一直只会是业余投资人。
您坚持了 10 多年的 ECUG 大会,本月要举办了,您坚持做这个大会的初衷和目标是什么?
这是一个技术交流的窗口。无论我今天作为技术人还是作为创业者,保持对业界前沿技术探索的持续关注都是很有必要的。每年年底都是一个回顾与总结的节点,回顾一下这一年技术领域都发生了哪些变化,挺好的。我会一直坚持它的技术性,成为真正的技术探索的一扇窗口。
本文转载自 Go 中国公众号。
原文链接:https://mp.weixin.qq.com/s/M2Y39ywSvy5Bl5C0_Yja6A
评论 1 条评论