2020年,为什么我强烈建议你学习Go语言!

​前几天,何冰老师的《后浪》刷爆朋友圈,其中有一句文案:“你们正在把传统的变成现代的,把经典的变成流行的”至今记忆犹新。抖音把专业的视频制作变成大众娱乐,微信把传统报业变成人人参与的自媒体行业。比起阳春白雪,下里巴人的事物是每个行业未来发展的趋势所在。

image

放到编程界来说,Python的火爆,最大的原因是Python把编程的难度降到最低,即使不是专业的程序员也能用Python实现很多的事情。同样的,还有另外一个编程语言,那就是GoGo继承了C\C++这类语言超高运行效率的优势,又把复杂度降低到了类似Python的程度!可以说是2020年必学的一门编程语言,为什么是这样?听我细细给你道来!

编程难度:

Go的对标语言不是Python而是静态语言,例如CC++等这些运行效率超高的静态编程语言。

C语言和C++的好处是偏底层,运行效率超级高。用C\C++写代码,就像“穿着冰刀在打过蜡的地板上跳舞”,速度超快,但是玩得不好,你将摔得体无完肤。如果你之前写过C++,你会发现这门语言非常庞杂,用法千奇百怪。他确实在大型项目上扮演着非常重要的角色,但是能用好的人寥寥无几。因此在2009年,Go语言从谷歌横空出世,他拥有接近C\C++语言的执行速度,学习成本却接近于Python,让众多迷茫的程序员眼前一亮!嗯,这就是能帮助我下半辈子早点下班的编程语言了!

image

以上可能说得比较抽象,现在来具体说说。

  1. 内存管理。C\C++的内存管理是需要自己来实现的,自己申请自己释放,有时候因为代码复杂,缺少内存释放,在测试环境中可能表现良好,但是在线上环境某些情况突然报错,让人无所适从。而Go是一门有垃圾回收的语言。单从这方面考虑,Go就能让你的生活幸福一百倍了!

  2. 丰富的第三方库支持。C\C++的第三方库实在太少,可能你要实现一个非常常见的功能,却需要写上百行代码,这对于追求经济价值的公司来说,实在是致命的!而Go本身的标准库已经非常强大了,并且社区也非常活跃,有大量的第三方库,基本上你能想到的,都有人帮你写好了,避免了重复造轮子的尴尬。

天生优势:

不得不说,Go语言当初设计的出发点,就已经横扫一大部分编程语言了。这里简单的说说我的体会:

  1. 天生并发。Go语言天生支持并发。你也许会说,我用xx语言也一样实现了高并发啊。针对这样的言论,我只能说天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还是天生的美丽呢?Go就是基因里面支持的并发,可以充分的利用计算机多核的条件,很容易实现高并发。

  2. 部署简单。另外一个是,Go语言的项目,部署及其方便!Go编译生成的是一个静态可执行文件,除了glibc外没有其他外部依赖。这让部署变得异常简单!目标及其上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担。

  3. 良好的语言设计。Go语言的设计是非常优秀的,规范足够简单灵活。Go自带完善的工具链,大大提高了团队协作的一致性。比如gofmt自动排版Go代码,很大程度上杜绝了不同人写的代码排版风格不一致的问题。

image

Go的代表性项目:

评估一个语言的好坏,要看这个编程语言是否有代表性的项目。而Go在全球范围内有大量的成功案例。这里我做了个简单的归纳,足以说明Go的地位了:

image
  1. docker:可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。在Web打包和云计算等领域有举足轻重的地位!

  2. Nsqbitly开元的消息队列系统,性能非常高,目前他们每天处理数十亿条消息。

  3. Kubernetes:容器编排工具,实现自动化部署,更新,下线,负载均衡,容错处理等。

  4. Fabric:区块链超级账本Hyperledger Fabric实现,用于联盟链开发。

  5. Syncthing:一个持续不断的文件同步项目,能够在两台或者多台电脑上同步文件,使用了其独有的对等自由块交换协议,速度极快!

  6. Lantern:中文名“蓝灯”。分布式,点对点的自由上网解决方案。你懂得!

哪些公司用Go

  1. Google:这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如kubernetes,也可以在这里看到更多的谷歌的Go开源项目:https://github.com/google/

  2. FacebookFacebook也是Go的忠实簇拥者。比如注明的平滑升级工具grace。更多的可以访问:github.com/facebookgo

  3. 腾讯:腾讯作为国内的巨头之一,在Docker容器化这一块,他们在2015年已经做了docker万台规模的实践。看腾讯的招聘信息,也有大量的Go语言岗位。

  4. image
  5. 小米:小米对Golang的使用,莫过于运维监控系统的开元,也就是open-falcon.com。此外小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang

  6. 七牛:七牛是国内做多媒体存储的巨头了。承接了大部分中小新公司的图片、视频等多媒体文件。其技术栈用到的就是Go,CEO许式伟也是Go的拥簇者,还写了一本书《Go语言编程》,可以说是对Go的认可已经到极致了。

该如何学好Go

Go已经是作为一个程序员在未来发展中必不可少的技能了。如果你已经在学Go了,恭喜你的未来已经有跟公司叫板的资本了!如果你还没有学习Go,那么请在Go语言喷涌发展前夕抓紧时间好好学习了。时间不等人,未来很残酷,长江后浪推前浪,希望你不是那个被拍死在沙滩上的前浪。

1.png

Beego框架可以说是目前为止在Go语言领域运用最广泛,最优秀的Web框架之一。类似于DjangoPython领域中的地位了。并且他天生支持高并发,所以想要学习高并发网站开发的小伙伴,这个框架一定不要错过哦!