golang 简介

背景

  1. 硬件技术更新快,性能逐步提高,现有的主流编程不能合理利用多核多cpu的优势。
  2. 软件系统复杂,维护成本高,缺乏一个足够简洁高效编程语言。
    1. 风格不一
    2. 计算力不够
    3. 并发支持不友好
  3. c/c++项目编译慢(静态编译),存在内存泄露问题

诞生

思想

**less can be more** 大道至简才是最难的

创始人

Ken Thompson(肯·汤普逊):1983年图灵奖、1998年美国国家技术奖得主,他与Dennis Ritchie是Unix系统的原创者。Thompson也发明了C语言、B语言,同时也是C语言的主要发明人。
Rob Pike(罗布·派克): 加拿大人,曾是贝尔实验室的Unix团队和Plan 9操作计划的成员。他与Thompson公事多年,并共创出广泛使用的UTF-8字元编码。(ps:Go语言的图标-gopher 囊地鼠,是Rob Pike老婆制作的)
Robert Griesemer:曾协助制作Java的HotSpot编译器,和Chrom浏览器的JavaScript引擎V8.

里程碑

2007年,谷歌工程师Ken Thompson、Rob Pike、Robert Griesemer开始设计一门全新的语言,这是Go语言的最初原型。
2009.11.10 ,Google将Go语言以开放源代码的形式向全球发布。
2012.03 Go1.0版本发布,go tool pprof,go vet
2013.05 Go1.1版本发布,优化语言(编译器,gc,map,go 调度器)和提升它的性能,加入竞争检测,重写调度器(GMP)。
2013.12 Go1.2版本发布,go tool cover
2014.06 Go1.3版本发布,这个版本对栈管理做了重要的改进。栈可以申请连续的内存片段,提高了分配的效率。sync.Pool,支持服用结构体,减少申请内测的次数,进一步优化通道。
2014.12 Go1.4版本发布,支持andeoid,支持go generate
2015.08.19  ,Go1.5版本发布,本次更新中移除了“最后残余的C代码”,请内存管理方面权威专家Rick Hudson对GC进行重新设计(重要的修正),支持go tool trace
2016.02 Go1.6版本发布,https默认支持http2,降低gc等待时间
2016.08 Go1.7版本发布,contxt包发布,优化编译
2017.2.16  Go1.8版本发布,优化gc停顿时间1ms以下,改进defer
2017.8.24  Go1.9版本发布,支持别名声明,sync.Map加入
2018.2.16  Go1.10版本发布,test心中智能cache
2018.8.24  Go1.11版本发布,支持Go modules
2019.2.25  Go1.12版本发布,基于analysis包重新go vet
2019.9.03  Go1.13版本发布,改进sync.Pool gc运行时不清楚pool,引用换成来清理两次gc pool中无用实例。重写逃逸分析,减少堆内存申请
2020.2.25  Go1.14版本发布,改进defer/页分配器/timer等性能。goroutine支持异步抢占
2020.8.11  Go1.15版本发布,
2021.2.16  Go1.16版本发布

优势

特色

  1. 语法简洁、开发快速、可读性
  2. 并发(GMP goroutine/chanel)、有趣、开源
  3. 内存管理gc、数组安全、静态编译迅速

特征

  • 自动垃圾回收
  • 更丰富的内置类型
  • 函数多返回值
  • 错误处理
  • 匿名函数和闭包
  • 类型和接口
  • 并发编程
  • 反射
  • 语言交互性

对比

c适合底层
java适合应用层
python适合脚本/人工智能
go适合做微服务

  • OOP 面向对象
  • 支持函数式编程(匿名函数/闭包)
  • GMP goroutine和channel

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mars'Ares

请我喝杯咖啡吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值