Go 将统治下一个十年
标题相当夸张是不是?
我本来打算用“规则”这个词的,但真的认为“统治”的描述更加准确。
只有一点就是,如题的观点是事实。
每 一天我都跟许多人谈论到 Go。除了像 Google 或者 Github 这样的地方之外,在 Go 用户上我们可能已经有了世界上最大的数据集。我们也从各种渠道收集到很多有趣的生产环境运行时数据。外部数据中的一些主动策划从公共资源处获取到的,而其 他部分则是自动从招聘网站、github 资源库、公司博客、linkedin 还有其它资源那里收集到的。这将我们引向一个有趣的问题:
这些 go 老鼠(谐音)们到底是从哪个洞里面钻出来的?
Devops
几乎所有这几年出现的 devops 工具都已经被用 Go 语言改写了。我觉得这恐怕预示着什么。通常,相对于一般的开发团队,小公司的运维团队收到的监管很少。只要是能工作的工具,他们一般就会去用,而不需要获 得谁的批准。对他们来说 Go 语言工作的非常棒,这是一门静态类型和编译型的语言(无需安装需要上千个依赖的运行库),而且 Go 的运行库也不大,也不用动不动就需要 100-300M的磁盘空间(看看 ruby、jvm 吧)。
比特币
许多 DeferPanic 上的我们的客户都与比特币/虚拟货币有关。这并非巧合,整个生态系统的共同点是使用Go语言。最有意思的是,我们所服务的那些公司,并不像你们以为的那样 会运行某些应用。基本上就是基于文件系统的,或者是校验由2008年建立的一堆杂乱的服务生成的交易。例如:极少数尝试把套利交易变成兑换。
不管你听到过什么,比特币都还没有死掉。很多用例传统上没想到过的,但是实际上已经有了很大的成功。我们的这些客户需要有高性能和更好的数据安全性的保证,Go 语言在这方面显然是很好的选择。
容器
有趣的是和那些科技人士交谈后发现他们居然不知道今天所有容器技术都是 Go 写的,不是 99%,也不是 95%-100%。
所有今天在使用的容器软件都是 GO 写的。
市场营销人员应该开始用 Go 原生来替换云原生。
我 们可以强调这是有多大(的市场)?即使你不相信容器的炒作,认为这是一个庞式骗局。当你考虑到所有公司使用 Go 的人数,并且未来几年大公司使用 Go 人数巨大。问你从世界财富五百强的首席信息官那听说他们将要检修他们系统,你不得不意识到这订单很大。这不是他们看轻这件事,相反,他们也不会轻易的从中 走开,因为这是一个巨大的对时间,金钱以及过程的投资。
微服务
微服务在过去的几年风靡一时,不少分析师忽略了它们的价值,因为他们并不是搞技术的。当你 用maven下载了半个互联网,同时启动要占用 800M 虚拟内存,或者当你运行一个 RoR 的应用的时候占用了 200M,这和 Go 平均 5-20M 的运行时想比真是相差巨大。这种差距可以立刻转换到账单上,当你公司每个月少给 25-30 美金在 AWS 上就显而易见了。随着这种激烈的趋势下去,我们会看到越来越多的公司因为上述理由采用这种模式,并且你可以打赌即将迎来 Go 的时代。
投资
当谈及到一些知道 Docker 的人很有趣,他们甚至会去投资它在他们并不知道这个是由一个他们从未听过的 Go 编写而成的之前。在某种情况下,我想大概可以认作为“细节摘要”,当你把所有内容都说出来是很疯狂的。当然,事情也并非总是如此。
从来自 Battery 的 Adrian (也是来自 Netflix)今年在他与公司的交流中曾经数次说到 Go:
“大概四分之三的新东西是用 Go 写的 @golang” - 十二月十四号
L 接着他又提到 “几乎所有新的、有趣的东西都是用 Go 写的”.
在他的行业里面他可能有更好的眼光,因为他参加过很多会议,并如此的接地气。
来自 Mayfield 的 Robin Vasan 甚至在今年的 goper 大会上进行了一次演讲
在 VC 工作,并且精通 Go 的 Jerry Chen 曾经出席大会并有良好表现。
采用
早年,C++ 曾一度被嘲讽为是无能的 C 程序员才使用的语言。后来,Java 出现了,但也没有多大的改善。Joel早就对此很失望。究其原因是,在上世纪 90 年代后期所推行的一堆面向对象的概念,完全是在胡说八道,并且对未来有害无益(虽然当时难以预见)。摩尔定律失效了。现在,大家都用虚拟计算机做软件开发和交付,这是一种完全不同于上世纪 90 年代的做法。不过,谁会想得到呢。事后诸葛亮还是好当的。
旧金山的工程师们对此或许会感到有些惊讶。在旧金山,有一大群的开发人员每天想着朝九晚五的上下班,回到家后就不再碰触电脑。他们可能是形形色色的,但我想他们都有一个共同的特点,那就是他们“编码只是为了完成任务”。他们丝毫不关心热门的新框架,也不在乎是否使用最新的“最佳实践”。他们唯一的心愿就是“完成任务”。
Go 在这方面很出色(去掌握这门技术吧)。它真真正正的让开发人员做到了恰好搞定工作。
众观世上所有程序设计语言,没有其它任何一门语言能够在“完成任务”模式上有优势。然而,对于软件的未来,这一点却非常重要。因为,每一家公司都不得不招收越来越多的开发人员,开发越来越复杂的系统。
Go是新的JVM
Go替代JVM和.NET成为企业级编程语言是很显而易见的。
例如,我在旧金山演讲的时候几乎所有的Scale企业都在一点一点的迁移到Go,许多欧洲的企业也在做着同样的事情。
另 一个我听到比较多的比较和是Node。我发现人们尝试用Node去比较Go的时候都有点奇怪。首先你是比较语言的框架,其次你用Javascript(差 不多和Java的发布时间一样)和Go进行比较。在人类的岁月里,Java和Javascipt都喝醉在酒吧的某个角落,Go当时甚至还没有从幼儿园里学 会第一个字母,但现在Go依旧能得到这混乱市场的份额。
然而,真正愚蠢的人总是提及现在使用Go的人数-这基本上是伪科学的定义。我不认为谈论1900年路上车的数量是有意义的。
更精确且相关的应该是讨论Go在生态系统的方面(加密货币,容器)和增长速率,而不是原始的下载数。
因此,让我们来看一些谎言。
让我们来看一些该死的谎言。
让我们来看一些统计数据。
人们只需要看看 Node 和 Go 聚会的出席率来做出自己的判断,从字面上看是两倍,完全没有竞争能力。
似乎每个人都很享受推特风暴,那么这条怎么样?我不知道应该把 DropBox 归属在什么类别(除了大),但是我觉得这会给你一个得体的想法去支持 Go 在接下来的几年里:
另外,你还认为只是谷歌和一些旧金山消息灵通的人在使用Go嘛?又是猜的。Go在中国很多人用,而且本地的百度也有一个大的用户,他们正在开始使用Go。
显然Go是一个有美好未来的新语言,Go无用武之地?
然而现实是这样的:“在美国市值前20的企业有超过一半正在使用Go”
最后
如果你还没有开始使用 Go 就说明你的组织已经落后了。在 90 年代、00 年代落后可能并不是大不了的事情,我们仍然有当时的 "IT" 概念,但是现在可是快接近 2016 了。
你不能被抛在后面,不然你的业务就会死。
这不是一个原始的资源游戏,在成本的十分之一提交软件。我们几次都注意到这很高的影响工作效率。不管你信不信这会相当你有十倍的程序员,Go 会让你们团队的效率提升十倍以上。
所有招聘来工作于基础系统的,如果你不使用 Go,将使你组织的技术冒上风险。
Ruby 显然已经完了。Javascript 是误导的、python 踩上了数据科学家的高跷。JVM 西斯君主握住你的脖子,.NET最近开源企图想留在开源相关面。
Go 在未来,Go 是你的未来,你还有得选择。
Go 会统治接下来的十年!