go语言图标是囊地鼠(gopher)。gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物,它的中文名叫做囊地鼠,它们最大的特点就是挖洞速度特别快;囊地鼠也代表了go语言的运行速度、开发速度、学习速度(develop)快。
本教程操作环境:windows7系统、GO1.18版本、DellG3电脑。
Go语言的logo就是很简洁的GO两个字母。
Go之所以叫Go,是想表达这门语言的运行速度、开发速度、学习速度(develop)都像gopher一样快。
gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物,它的中文名叫做囊地鼠,他们最大的特点就是挖洞速度特别快,当然可能不止是挖洞啦。
go语言萌萌的吉祥物在一堆编程语言中画风都不同。
不禁让人怀疑这只地鼠真的是Geek做出的吗?
当然
不是啦!
这只萌萌的吉祥物是由RobPike的妻子ReneeFrench绘制的,PobPike是Go的发明者之一,贝尔实验室UNIX小组成员,Plan9主要开发者,他最喜欢做似乎就是:
发明操作系统
发明编辑器
发明语言
....
这位大神虽然很传奇,但他不是我们此次的主角。
好萌好萌好萌啊啊啊(o゜▽゜)o☆
就是她设计出了Golang吉祥物,可爱的Gordon
比心心!
Go语言起源2007年
Go从2009年9月21日开始正式作为谷歌公司20%兼职项目
2009年11月10日Google公司才正式发布Go语言,并以BSD协议完全开源,支持Linux和MacOS平台,同年11月支持Windows平台。
-2007年9月,雏形设计,RobPike(罗伯.派克)正式命名为Go;
-2008年5月,Google全力支持该项目;
//2009年11月10日,首次公开发布,Go将代码全部开源,它获得了当年的年度语言;
-2011年3月16日,Go语言的第一个稳定(stable)版本r56发布。
//2012年3月28日,Go语言的第一个正式版本Go1发布。
-2013年4月04日,Go语言的第一个Go1.1beta1测试版发布。
-2013年4月08日,Go语言的第二个Go1.1beta2测试版发布。
-2013年5月02日,Go语言Go1.1RC1版发布。
RC=ReleaseCandidate,含义是”发布候选版”,
它不是最终的版本,而是最终版(RTM=ReleaseToManufacture)之前的最后一个版本。
-2013年5月07日,Go语言Go1.1RC2版发布。
-2013年5月09日,Go语言Go1.1RC3版发布。
-2013年5月13日,Go语言Go1.1正式版发布。
-2013年9月20日,Go语言Go1.2RC1版发布。
-2013年12月1日,Go语言Go1.2正式版发布。
-2014年6月18日,Go语言Go1.3版发布。
-2014年12月10日,Go语言Go1.4版发布。
//2015年8月19日,Go语言Go1.5版发布,本次更新中移除了”最后残余的C代码”。
go1.5的发布被认为是历史性的。完全移除C语言部分,使用GO编译GO(ps:少量代码使用汇编实现),GO编译GO称之为Go的自举,是一门编程语言走向成熟的表现。另外,他们请来了内存管理方面的权威专家RickHudson,对GC进行了重新设计,支持并发GC,解决了一直以来广为诟病的GC时延(STW)问题。并且在此后的版本中,又对GC做了更进一步的优化。到go1.8时,相同业务场景下的GC时延已经可以从go1.1的数秒,控制在1ms以内。GC问题的解决,可以说GO语言在服务端开发方面,几乎抹平了所有的弱点。
-2016年2月17日,Go语言Go1.6版发布。
-2016年8月15日,Go语言Go1.7版发布。
-2017年2月17日,Go语言Go1.8版发布。
-2017年8月24日,Go语言Go1.9版发布。
-2018年2月16日,Go语言Go1.10版发布。
-2018年8月24日,Go语言Go1.11版发布。
-2019年2月25日,GO语言Go1.12版发布。
ps:在GO语言的版本迭代过程中,语言特性基本上没有太大的变化,基本上维持在GO1.1的基准上,并且官方承诺,新版本对老版本下开发的代码完全兼容。事实上,GO开发团队在新增语言特性上显得非常谨慎,Go语言的版本更迭主要集中在稳定性、编译速度、执行效率以及GC性能等底层性能方面,所以说Go语言使用者不必担心快速的版本更迭带来的兼容性问题
大量基于GO语言开发的杀手级应用:Docker、Kubernetes、Go-Ethereum、Thrraform、Moby、Gogs、Grafana、Etcd等。于2009、2016两次夺得TIOBE年度编程语言的称号,2020年世界排名处于第12位
编程语言说到底只是一种工具,不选最好的,只选最合适的
//Go语言适用的场景为:
-1、服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
-2、凭借其出色的并发能力,Go在分布式系统领域,如集群系统、游戏服务器、数据库代理器、中间件等场景同样极具威力
-4、数据库操作
-5、开发云平台,目前国外很多云平台在采用Go开发
//Go语言不适合的场景为:
1、强实时性软件:话音通信、无人驾驶、垃圾回收、自动内存分配等因素都让Go在实时性上力不从心