前几天,何冰老师的《后浪》刷爆朋友圈,其中有一句文案:“你们正在把传统的变成现代的,把经典的变成流行的”至今记忆犹新。抖音把专业的视频制作变成大众娱乐,微信把传统报业变成人人参与的自媒体行业。比起阳春白雪,下里巴人的事物是每个行业未来发展的趋势所在。
放到编程界来说,Python
的火爆,最大的原因是Python
把编程的难度降到最低,即使不是专业的程序员也能用Python
实现很多的事情。同样的,还有另外一个编程语言,那就是Go
!Go
继承了C\C++
这类语言超高运行效率的优势,又把复杂度降低到了类似Python
的程度!可以说是2020
年必学的一门编程语言,为什么是这样?听我细细给你道来!
编程难度:
Go
的对标语言不是Python
而是静态语言,例如C
和C++
等这些运行效率超高的静态编程语言。
C
语言和C++
的好处是偏底层,运行效率超级高。用C\C++
写代码,就像“穿着冰刀在打过蜡的地板上跳舞”,速度超快,但是玩得不好,你将摔得体无完肤。如果你之前写过C++
,你会发现这门语言非常庞杂,用法千奇百怪。他确实在大型项目上扮演着非常重要的角色,但是能用好的人寥寥无几。因此在2009
年,Go
语言从谷歌横空出世,他拥有接近C\C++
语言的执行速度,学习成本却接近于Python
,让众多迷茫的程序员眼前一亮!嗯,这就是能帮助我下半辈子早点下班的编程语言了!
以上可能说得比较抽象,现在来具体说说。
内存管理。
C\C++
的内存管理是需要自己来实现的,自己申请自己释放,有时候因为代码复杂,缺少内存释放,在测试环境中可能表现良好,但是在线上环境某些情况突然报错,让人无所适从。而Go
是一门有垃圾回收的语言。单从这方面考虑,Go
就能让你的生活幸福一百倍了!丰富的第三方库支持。
C\C++
的第三方库实在太少,可能你要实现一个非常常见的功能,却需要写上百行代码,这对于追求经济价值的公司来说,实在是致命的!而Go
本身的标准库已经非常强大了,并且社区也非常活跃,有大量的第三方库,基本上你能想到的,都有人帮你写好了,避免了重复造轮子的尴尬。
天生优势:
不得不说,Go
语言当初设计的出发点,就已经横扫一大部分编程语言了。这里简单的说说我的体会:
天生并发。
Go
语言天生支持并发。你也许会说,我用xx
语言也一样实现了高并发啊。针对这样的言论,我只能说天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还是天生的美丽呢?Go
就是基因里面支持的并发,可以充分的利用计算机多核的条件,很容易实现高并发。部署简单。另外一个是,
Go
语言的项目,部署及其方便!Go
编译生成的是一个静态可执行文件,除了glibc
外没有其他外部依赖。这让部署变得异常简单!目标及其上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需的各种包、库的依赖关系,大大减轻了维护的负担。良好的语言设计。
Go
语言的设计是非常优秀的,规范足够简单灵活。Go
自带完善的工具链,大大提高了团队协作的一致性。比如gofmt
自动排版Go
代码,很大程度上杜绝了不同人写的代码排版风格不一致的问题。
Go
的代表性项目:
评估一个语言的好坏,要看这个编程语言是否有代表性的项目。而Go
在全球范围内有大量的成功案例。这里我做了个简单的归纳,足以说明Go
的地位了:
docker
:可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。在Web
打包和云计算等领域有举足轻重的地位!Nsq
:bitly
开元的消息队列系统,性能非常高,目前他们每天处理数十亿条消息。Kubernetes
:容器编排工具,实现自动化部署,更新,下线,负载均衡,容错处理等。Fabric
:区块链超级账本Hyperledger Fabric
实现,用于联盟链开发。Syncthing
:一个持续不断的文件同步项目,能够在两台或者多台电脑上同步文件,使用了其独有的对等自由块交换协议,速度极快!Lantern
:中文名“蓝灯”。分布式,点对点的自由上网解决方案。你懂得!
哪些公司用Go
:
Google
:这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如kubernetes
,也可以在这里看到更多的谷歌的Go
开源项目:https://github.com/google/
。Facebook
:Facebook
也是Go
的忠实簇拥者。比如注明的平滑升级工具grace
。更多的可以访问:github.com/facebookgo
。腾讯:腾讯作为国内的巨头之一,在
Docker
容器化这一块,他们在2015年已经做了docker
万台规模的实践。看腾讯的招聘信息,也有大量的Go
语言岗位。小米:小米对
Golang
的使用,莫过于运维监控系统的开元,也就是open-falcon.com
。此外小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang
。七牛:七牛是国内做多媒体存储的巨头了。承接了大部分中小新公司的图片、视频等多媒体文件。其技术栈用到的就是
Go
,CEO许式伟也是Go
的拥簇者,还写了一本书《Go语言编程》,可以说是对Go
的认可已经到极致了。
该如何学好Go
:
Go
已经是作为一个程序员在未来发展中必不可少的技能了。如果你已经在学Go
了,恭喜你的未来已经有跟公司叫板的资本了!如果你还没有学习Go
,那么请在Go
语言喷涌发展前夕抓紧时间好好学习了。时间不等人,未来很残酷,长江后浪推前浪,希望你不是那个被拍死在沙滩上的前浪。
Beego
框架可以说是目前为止在Go
语言领域运用最广泛,最优秀的Web
框架之一。类似于Django
在Python
领域中的地位了。并且他天生支持高并发,所以想要学习高并发网站开发的小伙伴,这个框架一定不要错过哦!
有疑问加站长微信联系(非本文作者)