Go 语言系列:Go 从哪里来,Go 将去哪里?
前言
最近打算拓展一下自己的技术范围,按照自己的职业规划,是时候开始学习一门后端语言了。所以不出意外,后面的更文将会开启新的一个系列,那就是关于Go
语言的相关学习和实践,争取不让自己从入门到放弃。
那再来说说那么多后端语言,为什么选择去学习Go
语言呢?其实原因有二,首先那就是让自己不被码农这个群体淘汰,多一个吃饭的技能就多一条路;其次就是Go
语言相对于其他服务端语言来说入门相对轻松,前景也相对明朗,毕竟它现在已被广泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。
所以我们要抓住趋势,紧跟技术前沿,争取做技术的领导者。目前虽然是在跟随者的阶段,但相信这只是暂时的,不久的将来肯定会成为行业的领跑者。下面就来深入的讲解为啥选择去学习Go
语言这门技术,请往下看→
一、Go 语言的诞生
古语有云:“往古者,所以知今也”。在决定学习探究Go
语言之前,了解一下它的诞生背景是很有必要的。这还得从谷歌工程师的20%
时间说起,谷歌的20%
时间工作方式就是允许工程师拿出20%
的时间来研究自己喜欢的项目,其间产出的成果有:谷歌新闻、谷歌地图上的交通信息、语音服务等,这些全都是20%
时间的产物。
而我们的主角——Go
语言也是20%
时间的产物。
1.1 什么是 Go 语言?
在Go
语言出现之前,很多编程语言都有或多或少的问题存在,如C++
执行效率高但是开发和编译就很低效;.NET
和Java
执行低效但是编译却很高效。所以基于这些语言存在的问题,Go
就带着拥有高效执行速度、编译速度和开发速度的使命横空出世了。
用百度百科的解释来阐述一下Go
语言的概念:
Go(又称 Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
它是由图灵奖获得者、C
语法联合发明人、Unix
之父肯·汤普森(Ken Thompson),Plan 9
操作系统领导者、UTF-8
编码的最初设计者罗伯·派克(Rob Pike)以及Java
的HotSpot
虚拟机和Chrome
浏览器的JavaScript V8
引擎的设计者之一罗伯特·格瑞史莫(Robert Griesemer)三个人开发的编程语言。
Go
语言之所以叫Go
,其实是想表达这门语言的执行速度、编译速度、开发速度和学习速度都像gopher
一样快。gopher
是一种生活在加拿大的小动物,Go
语言的吉祥物就是这个小动物,它的中文名叫做囊地鼠,它们最大的特点就是挖洞速度特别快。所以这再一次表达了Go
语言的出现将带来变革和人们对其的高度期望。
1.2 Go 语言的优势
Go
语言有何优势这对于刚入门的人来说,肯定是没有特别深的认识和理解的,但是可以从网上获取一些前人总结得出的优势进行参考,提前了解Go
语言的潜在优势可以助推主动学习的动力,提升对其认识的兴趣,从而激起探索征服Go
语言的浓厚欲望。
Go
语言的优势有如下几点:
兼顾
C
语言级别的编译、运行效率,容易部署,PHP
级别的开发效率强大的标准库,内置高效的垃圾回收机制
简单的并发编程,
goroutine
和channel
极易上手静态类型语言,拥有强大的编译检查、严格的编码规范
背景强大,由三位骨灰级大师创造,google公司运营维护
参考资料:站在山顶上看golang的前世今生与未来展望——作者:linux 开拓者
1.3 Go 语言适合做什么?
通过上述的优势介绍,应该对Go
语言适合做什么有一定的了解了吧!其实Go
语言主要用于服务器端开发,它的定位就是用来开发大型软件服务的,适合开发周期长,支持云计算的网络服务项目。
Go
语言在作为服务器端语言时,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;其次在网络编程方面,Go
语言广泛应用于Web
应用、API
应用、下载应用等;除此之外,Go
语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go
开发。
二、Go 语言的现状
Go
语言因为简单易学,性能强劲和原生支持并发的特点,深受开发人员的青睐,关注度也在逐年上升。根据调查,使用Go
语言的开发的开发者在全球范围内高达近300
万。而在中国使用Go
语言的开发者更是接近45
万左右,并且这个数字还在继续增长,所以对于我们这些想要学习Go
语言的新人来说,前景还是挺友好的,现状足以让我们对其充满信心。下面就从四个方面展开说说Go
语言的现状,请往下看→
2.1 从受欢迎程度
上述的数据还是不那么直观体现,作为程序员还是得去专业的网站上查看其真实的现状。下面就分别从Github和Stack Overflow上看看Go
语言的真实情况。
首先看到的这张图统计的是学习编程、脚本和标记语言中想要学习语言的统计图。可以看到Go
语言的吸引力已慢慢追赶上来,这和上述统计的数据是呈正向反馈的,所以前景是极好的。
接着,上面这张图则是github
上搜索go
时得到的数据结果图。可以看到和go
相关的代码仓库或是代码片段的数量也是惊人的,可以说Go
语言的生态还是相当完善的。
上述的图示足以看出,Go
语言的受欢迎程度是真的不错,再加上日益完善的社区和生态,可使刚进入Go
语言开发的新人来说是一个不错的迹象。
2.2 从公司角度
接着,从公司角度再来看看Go
语言开发项目业务,在互联网公司中的使用情况。越来越多的公司都已经在使用Go
语言开发项目业务,主要还是由于Go
语言在1.2
中提到的优势决定的:谷歌大厂开发的、有专门的团队在维护、天然支持并发、语法简洁易上手、再加上性能优异就能节省机器,节约成本等诸多优势,促使团队在做技术选型时选择Go
语言。
那‘越来越多’的公司使用Go
语言,其中就包括像 Google、Facebook、阿里、京东、今日头条、小米、滴滴、七牛云、360 等明星公司,有了这些明星大厂的站台,那它岂不更上一层楼,这也使其逐渐被很多创业公司所青睐了,所以既然有这么多的大厂都在使用,那我们就更不必去担忧它中途被无情抛弃了。
2.3 从业务角度
在前文1.3
中就提到,Go
语言适合的一些开发场景。随着新兴技术的发展,更多的可能也在不断涌现,像近年来火出圈的区块链更是带动了Go
开发工程师的需求,很多区块链的大项目均是使用Go
语言进行开发的,足以说明Go
语言在分布式系统中的地位,这也使大批搞金融的公司也在招聘Go
开发工程师了。
其次像在云计算、云平台、微服务、大数据、物联网等领域,也不乏看到Go
语言的影子。但是Go
语言在移动端开发的项目却少见,仅使用在提供后端接口服务和一些web
服务的业务场景。后续应该能预见其在机器学习领域的表现,毕竟Go
语言在机器学习正朝着普及的方向前进中。
2.4 从薪资角度
说一千道一万,到最后还是得在薪资上体现,尽管它如何如何牛皮,没有人买单那也是竹篮打水一场空。那下面就来看看现在市场上从事使用Go
语言开发的人员的薪资情况,这也可以让刚踏入这个门类的新人真切地去感知Go
语言开发的市场需求和真实的买单情况。
下面就是在Boss招聘平台进行统计的结果图示:
从图上可以看到,今年7
月份薪资中位数为¥13293
,比较上月下降了3.31%
,其中47%
的Golang
开发工程师任职年龄在25岁-29岁
,下降的原因主要还是因为疫情的反复,造成的工作机会的不稳定,再加上统计的是全国城市得到的数据结果,从而拉低了在北上广深杭等城市的基础月薪,但总体还是偏好的趋势。
接着,上图统计的则是工作年限薪酬的分布情况。可以看到随着工作年限的增长,薪酬也是再不断的陡升趋势,并且起点还不低,这就是Go
语言被接受的买单真实写照。
通过上面两张图的展示,可以得到Go
语言开发工程师被市场的认可和接纳还是挺友好的,相比一些热门门类来说的话,比如前端开发,简直羡慕至极,所以入门Go
语言得赶紧提上日程了。
三、Go 语言的前景
3.1 前景
随着Go
语言技术成熟度提高和行业应用经济效益逐步显现,越来越多的企业开始竞相招揽人才并投入到Go
语言领域。像阿里、腾讯、百度等科技巨头正凭借已有的信息技术优势纷纷抢滩布局,万达、邮政,银行等传统行业也视Go
语言为战略性机会;还有一些创业公司也凭借Go
语言独有的应用想法和逻辑,快速开拓新的领域和市场份额。
总之,Go
语言技术的突飞猛进,正深刻影响着互联网的发展。Go
语言近年来的增长也引起了人才需求的渴求。由于人才极度稀缺,在未来数年内,Go
语言都将处于快速上升的时期,谁先入行,谁的技术过硬,谁就能占据更多优势和机会。心动不如行动,赶紧学起来吧!
3.2 如何学习 Go 语言?
不管是学习啥语言,都不能纸上谈兵,还得不断的实践。实践是检验真理的唯一标准
,没有捷径可走,只有不断的夯实基础,才能游刃有余的面对一切可能。
下面就是我学习Go
语言所浏览的网页收集:
Go 语言中文网:http://c.biancheng.net/golang/
犬小哈教程:https://www.quanxiaoha.com/golang/linux-install-golang.html
Go by Example:https://gobyexample.com/
后语
伙伴们,如果觉得本文对你有些许帮助,点个👍或者➕个关注再走呗^_^ 。另外如果本文章有问题或有不理解的部分,欢迎大家在评论区评论指出,我们一起讨论共勉。
版权声明: 本文为 InfoQ 作者【.】的原创文章。
原文链接:【http://xie.infoq.cn/article/f3e9d76a87286ec745f34af28】。文章转载请联系作者。
评论