go语言你看好吗?谈谈我的看法

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> go语言你看好吗?谈谈我的看法

现在go语言已经有很多公司在用了,希望大家知道这个事实,如果不了解,说明你没有足够的关注技术的前沿,对于未来go语言会怎么样,看不看好,今天来聊聊。

这篇文章主要就是来讲讲我对于go语言的一些想法。

大家都知道,今年实习的时候,我选择了去腾讯实习,在腾讯的时候,也是做得后端开发的事情,然后,语言就不是我想要的了,因为,在腾讯的这段时间,用的语言都是go语言,机缘巧合之下,我就跟go语言结缘了。

但是,接触了go语言才知道,原来,他已经很火爆了,可能因为go语言的爸爸是google吧,另外,确实go语言有他的独特之处,这个后面再聊,所以,现在很多的大厂都开始用go语言进行开发,特别是云方向的,这也是因为docker和k8s等巨头的火爆引起的。

在这段时间使用go语言的感受在这里聊聊。

第一,发现这门语言真的是比Java要简单,用起来也更加的方便,另外,很多的特性比Java简洁,同时go语言的原生库的支持比其他语言真的多;

第二,对于并发的支持是go语言的特点之一,这真的是简单到不能再简单了,对于用过Java的知道并发的使用,你再用用go,才知道原来可以这样搞;

第三,上手问题,这个对于学过几年编程的从业者来说,其实不是什么困难的,再加上go语言的特性,对于我来说,基本上只用了几天的时间就开始进行功能需求的开发了,没有什么障碍的,借用知乎的一句话:我学习go语言用了3天,学习python用了一个星期,学习Java用了一个月,学习C用了一年,学习C++用了11年

第四,go的社区技术体系,对于这点,其实也是不用担心的,go语言从2009年开始,已经有了10年的发展历史了,另外,越来越多的公司和企业采用go语言进行开发,比如七牛云云平台整体采用Go语言进行开发,今日头条采用Go语言构建微服务消息系统;除此之外,很多开源的软件和应用采用go语言进行开发,比如当前大火的容器化软件Docker,和服务管理K8S,都是采用go语言进行开发;

第五,现在越来越多的大公司都在用,当然也有很多中型企业也开始疯狂用go了,比如我知道的七牛云,斗鱼,b站等,都是用go语言进行相关的开发了,既然有越来越多的公司在用,那么就会有需求,有需求,就不用担心找不到工作了。

其实,你会发现,go语言还是非常有潜力的。

另外,我们也可以从发展历史,在用公司,热门项目等几个角度谈谈go语言的发展。

go语言从2009年开始,已经迭代了很多版本了,这能说明,google对于go语言的支持还是非常的活跃的,如下。

2007年,谷歌工程师Rob Pike, Ken Thompson和Robert Griesemer开始设计一门全新的语言,这是Go语言的最初原型。[1]
2009年11月10日,Go语言以开放源代码的方式向全球发布。[1]
2011年3月16日,Go语言的第一个稳定(stable)版本r56发布。[2]
2012年3月28日,Go语言的第一个正式版本Go1发布。[2]
2013年4月04日,Go语言的第一个Go 1.1beta1测试版发布。[3]
2013年4月08日,Go语言的第二个Go 1.1beta2测试版发布。[3]
2013年5月02日,Go语言Go 1.1RC1版发布。[4]
2013年5月07日,Go语言Go 1.1RC2版发布。[5]
2013年5月09日,Go语言Go 1.1RC3版发布。 [6]
2013年5月13日,Go语言Go 1.1正式版发布。
2013年9月20日,Go语言Go 1.2RC1版发布。[7]
2013年12月1日,Go语言Go 1.2正式版发布。[8]
2014年6月18日,Go语言Go 1.3版发布。[9]
2014年12月10日,Go语言Go 1.4版发布。[10]
2015年8月19日,Go语言Go 1.5版发布。[11]
2016年2月17日,Go语言Go 1.6版发布。[12]
2016年8月15日,Go语言Go 1.7版发布。[13]
2017年2月17日,Go语言Go 1.8版发布。[14]
2017年8月24日,Go语言Go 1.9版发布。[15]
2018年2月16日,Go语言Go 1.10版发布。[16]

热门的项目其实我们知道的也有一些,比如docker,k8s,另外,还有以下这些。

nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息
docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。
packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者
skynet:分布式调度框架
Doozer:分布式同步工具,类似ZooKeeper
Heka:mazila开源的日志处理系统
cbfs:couchbase开源的分布式文件系统
tsuru:开源的PAAS平台,和SAE实现的功能一模一样
groupcache:memcahe作者写的用于Google下载系统的缓存系统
god:类似redis的缓存系统,但是支持分布式和扩展性
gor:网络流量抓包和重放工具

当然,远远不止这些开源项目,我github上面就看到过一张go语言的学习路线图,都是已经成熟的项目了,贴到这里给大家看看。

同时,据我了解,下面这些公司有在大量的使用go,特别是腾讯,很多新业务都是在往go方向转。

还有下面这些公司也都在使用,这里都说说,同时也介绍一下一些开源项目。

  • google

google作为go语言的开发公司,当仁不让,Google基于Go有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes

  • facebook

Facebook还专门在Github上建立了一个开源组织facebookgo,大家可以通过 https://github.com/facebookgo 访问查看facebook开源的项目,比如著名的是平滑升级的grace。

  • 腾讯
  • 百度
  • 京东

京东云消息推送系统、云存储,以及京东商城等都有使用Go做开发。

  • 小米
  • 360

360对Golang的使用也不少,一个是开源的日志搜索系统Poseidon,托管在Github上,https://github.com/Qihoo360/poseidon.

当然也有很多其他的国外的公司。

  • Apcera.com
  • Stathat.com
  • Juju at Canonical/Ubuntu, presentation
  • Beachfront.iO at Beachfront Media
  • CloudFlare
  • Soundcloud
  • Mozilla
  • Disqus
  • Bit.ly
  • Heroku
  • youtube

说了,这么多,其实,这都能表明一个问题,那就是至少现在看来go的社区还是非常的活跃的,对于未来,go一定是非常的有潜力的。

最后,对于我个人而言,也在做一个选择,毕竟自己做了4-5年的Java开发了,现在就在选择是否要调到go,前面也讲了这么多,go的前景我觉得是不用太担心的,现在不管从go的背景(google)、社区活跃度、开源项目、使用的公司,这几个方面来看,go的未来都会是光明的,虽然说,现在的go语言还是有一些缺陷的,比如,缺乏泛型,不支持继承,Go的import包不支持版本等,但是这些通过后期的版本迭代,应该都会成为历史。所以,我还是建议大家学习go语言的,我个人也很有可能后面从事go语言的开发工作。

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> go语言你看好吗?谈谈我的看法


 上一篇
写博客能月入10K? 写博客能月入10K?
对于写博客这件事情,我还是非常有经验的,我大概从大二开始写博客,一直持续到现在已经有6年的时间了,应该说是积累了一些经验,今天跟大家聊聊。 在大学的时候,写博客的初心其实就是记录一些学习的知识,那个时候,因为很多技术都不是很了解,所以每天需
下一篇 
从我的角度来谈谈选择编程语言真的重要吗? 从我的角度来谈谈选择编程语言真的重要吗?
最近我一直在思考问题,当我秋招结束的时候,需要选择offer的时候,我该怎么选择,是选择公司,还是选择城市,还是选择语言,还是选择岗位,这些都是需要考虑的问题,在找工作之前,我一直在找的都是Java开发语言的工作,但是,在找工作的过程中,发