一、Go语言的核心开发团队
1、Ken Thompson(肯·汤普森)
2、 Rob Pike(罗布·派克)
3、Robert Griesemer
二、Google 创造Golang 原因
1、计算机硬件技术更新频繁,性能提高更快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
2、软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
1)现有编程语言 缺乏风格不统一、计算能力不够、处理并发不够好
3、企业运行维护很多C/C++ 的项目,c/cc++程序虽然运行速度很快,但是变异速度很慢,同时存在内存泄漏的一系列的困扰需要解决
三、Golang的发展
1、2007年9月,Rob Pike在Google分布式编译平台上进行C++编译,在漫长的等待过程中,他和Robert Griesemer探讨了程序设计语言的一些关键性问题,他们认为,简化编程语言相比于在臃肿的语言上不断增加新特性,会是更大的进步。随后他们在编译结束之前说服了身边的Ken Thompson,觉得有必要为此做一些事情。几天后,他们发起了一个叫Golang的项目,将它作为自由时间的实验项目。
2、2008年5月 Google发现了GO语言的巨大潜力,得到了Google的全力支持,这些人开始全职投入GO语言的设计和开发。
3、2009年11月 GO语言第一个版本发布。2012年3月 第一个正式版本Go1.0发布。
4、2015年8月 go1.5发布,这个版本被认为是历史性的。完全移除C语言部分,使用GO编译GO,少量代码使用汇编实现。另外,他们请来了内存管理方面的权威专家Rick Hudson,对GC进行了重新设计,支持并发GC,解决了一直以来广为诟病的GC时延(STW)问题。并且在此后的版本中,又对GC做了更进一步的优化。到go1.8时,相同业务场景下的GC时延已经可以从go1.1的数秒,控制在1ms以内。GC问题的解决,可以说GO语言在服务端开发方面,几乎抹平了所有的弱点
5、最新版本1.15
6、、在GO语言的版本迭代过程中,语言特性基本上没有太大的变化,基本上维持在GO1.1的基准上,并且官方承诺,新版本对老版本下开发的代码完全兼容。事实上,GO开发团队在新增语言特性上显得非常谨慎,而在稳定性、编译速度、执行效率以及GC性能等方面进行了持续不断的优化。
四、Go语言的特点
1、Go 语言保证了既能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达书来形容Go语言:Go = C + Python
2、说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发
3、从C语言中集成了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数值,指针等等,也保留了和C语言一样的编译执行方式及弱化的指针
4、引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
5、垃圾回收机制,内存自动回收,不需要开发人员关心
6、天然并发(重要特点)
1)从语言层面上支持并发,实现简单
2)goroutine:轻量级线程,可实现大并发处理,高效利用多核。
3)基于CPS并发模型(Communicating Sequentisl Processes)实现
7、吸收了管道通讯机制,形成Go语言特有的管道Channe 通过channel 可以实现不同的groute之间的相互通信
8、函数可以多个返回值
9、新的创新 比如:切片slice 、延时执行defer等
五、开发工具介绍
1、VSCode
https://code.visualstudio.com/download
2、IDEA
需要安装插件
3、Eclipse
安装GoEclipse插件
4、Vim
5、Emacs
编辑器、开发环境
6、Sublime Text
参考网站: https://studygolang.com/articles/14909