后浪笔记一零二四

Go语言里程碑

2007年——诞生

2007年9月20日,Robert Griesemer、Rob Pike和Ken Thompson三人在Google内部讨论会议上提议要开发一个新语言,9月25日,Rob在邮件中提议新语言名叫Go。

2008年——核心团队组建完成

2008年6月7日,gcc领域“大牛”Ian给Go创始团队发了封邮件,说他根据Go语言在公司论坛上的语言规范写了Go的gcc编译器gccgo,此时Go启用了第二编译器gccgo。两个编译器的好处是保证Go语言的语言规范稳定、正确和高度的可移植性。同年,Russ Cox加入团队,至此,Go语言的核心团队基本成型。

2009年——开源

2009年11月10日,Go语言正式宣布开源,源码首先放到Google的代码服务器上,后来迁移到Github。

2012年——Go 1.0发布

2012年3月28日,Go 1.0正式发布,Go开发团队同时做出承诺:后续任何版本都要保证语言规范的稳定性和程序兼容性,从1.0版本开始的代码在后续的编译器中都可以不加修改地进行编译,同时核心API接口不会再做出重大调整。

2015年8月——Go 1.5发布

编译工具链:Go实现自举,编译器和运行时几乎全部使用Go重写,Go可以编译Go编译器,实现“鸡生蛋和蛋生鸡”,自举可以看作语言成年的标志;GC通过并行回收机制,延迟得到大幅改善,延迟平均控制在10ms以内,延迟已经不再是语言的问题。

2016年2月——Go 1.6发布

编译工具链:语法分析器从yacc改为硬编码实现(好处:便于优化,更快)。GC:延迟更低,稳定在3ms左右(特别对大内存程序做了优化)。

2016年8月——Go 1.7发布

编译工具链:64-bit x86体系的编译器生成SSA(static single-assignment)格式的中间代码(IR),Go程序可以更好地进行编译器中后端的优化。

2017年2月——Go 1.8发布

语言规范微调:struct的类型定义如果只是tag不同,则可以相互强制转换;编译工具链全体系结构支持SSA。

2017年8月——Go 1.9发布

语言规范微调:增加类型别名的概念;sync包里面增加了并发安全的map。

2018年2月——Go 1.10发布

主要在编译和测试过程中增加了缓存机制,便于更快速地编译和测试。


专题:

本文发表于 2022-09-13,最后修改于 2022-09-13。

本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 变量和常量 下一篇 » go两种方式实现do-while循环

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image