1 Go语言项目
1.1 来源和特点
Go语言,即Golang,是Google公司于2009年11月正式对外公开的一门编程语言,有以下特性:
静态强类型语言、编译型语言、并发型语言。Go语言的语法比较接近C语言,变量声明不太一样,有垃圾回收的机制。
Go语言并不包括类似C++的枚举、异常处理、继承、泛型、断言、虚函数等功能。但是可以用一种方式去实现类似继承(接口编程),面向对象编程模式。Go语言有一些核心的特性:channel(管道),切片(slice),并发等。
1.2 项目背景
Go语言于2007年由3个人发起设计,分别是罗伯特格瑞史莫,罗勃派克(Unix小组的成员),以及肯汤普逊(设计和实现了Unix系统,是C语言的前身-B语言的创造者)。
Go语言是基于Inferno(创造并支持分布式服务的系统)开发的。
Go于2009年11月对外推出、并成为开放源码项目,并在linux和Mac OS X平台进行了实现,后来才追加了Windows系统的实现和支持。
2016年,Go被评选为“TIOBE 2016年最佳语言”。
每半年发布一个二级版本(即a.x,到a.y)。
2 Go语言发展—— 版本&特性
2009年11月7日 weekly.2009-11-06 —— 早期的版本
2012年3月28日 go1 —— 稳定版版的发布
2013年5月14日 go1.1 —— 语言本身的变化、库的变化等。
2013年12月01日 go1.2 —— 提供更好的调度和一个新的语言特性。
2014年6月18日 go1.3 —— 主要是在实现的工作上的变化,以及精准的垃圾回收。
2014年12月10日 go1.4 —— 包含了2个很小的语言变更。
2015年8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性。
2016年2月7日 go1.6 —— 语言本身、运行时、和库的实现的变化。
2016年8月15日 go1.7 —— 标准库有显着的性能改进和变化。
2017年2月26日 go1.8 —— 标准库有显着的性能改进和变化。
2017年8月24日 go1.9 —— 是包含语言,标准库,以及运行时的诸多变化。这个版本中的大部分工作都是对运行时和工具的改进。
2018年2月16日 go1.10 —— 大部分更改都在工具链,运行时和库的实现中。
2018年8月24日 go1.11 —— modules和WebAssembly支持。
3 Go语言应用
3.1 谁在用
如Java技术栈的阿里巴巴,还有如滴滴打车,uber,今日头条,小米,奇虎360,京东等公司。一些公司的老项目可能早起是java,c++之流,但是因为早起就是分布式多进程架构设计,对于新功能,新项目都是可以多语言混合的,那么也少不了对服务开发语言Golang的青睐。
3.2 应用领域
服务开发、并发、分布式、微服务等方向。
4 Go语言架构
GOPATH的工作区包含bin,src,和pkg这三个:
src——源码(包含第三方的和自己项目的)、bin——编译生成的可执行程序, pkg——编译时生成的对象文件。如下:
本文章对Go语言进行了一个总体的背景情况介绍,如果对于如何快速的学习一门语言感兴趣的小伙伴可以,看下另一篇文章,Go语言入门指导指导,这个不仅仅是教你怎么学习Go语言,同事也是分享了一个快速学习一门语言的方法论。有非常多的实践经验验证起来的方法,希望对你有所指导。
有疑问加站长微信联系(非本文作者)