小白学Go 基础02-了解Go语言的诞生与演进

Go语言诞生于何时?它的最初设计者是谁?它为什么被命名为Go?它的设计目标是什么?它如今发展得怎么样?带着这些问题,我们一起穿越时空,回到2007年9月Go语言诞生的那一历史时刻吧。

Go语言的诞生

2007年9月20日的下午,在谷歌山景城总部的一间办公室里,谷歌的大佬级程序员RobPike 1 启动了一个C++工程的编译构建。按照以往的经验判断,这次构建大约需要一个小时。利用这段时间,Rob Pike与谷歌的另两个大佬级程序员Robert Griesemer 2 和KenThompson 3 (见图1-1)进行了一次有关设计一门新编程语言的讨论,而这次讨论成为Go语言诞生的"导火索"。

趁热打铁!在第一天的简短讨论后,第二天三人又在总部的一间名为Yaounde的会议室里开了一场有关这门新语言具体设计的会议。这些天来三人对这门新编程语言的功能特性的讨论结果做了归纳总结,其主要思路是:在C语言的基础上,修正一些明显的缺陷,删除一些被诟病较多的特性,增加一些缺失的功能。具体功能和特性如下。

● 使用import替代include。

● 去掉宏(macro)。

● 理想情况是用一个源文件替代.h和.c文件,模块的接口应该被自动提取出来(而无须

手动在.h文件中声明)。

● 语句像C语言一样,但需要修正switch语句的缺陷。

● 表达式像C语言一样,但有一些注意事项(比如是否需要逗号表达式)。

● 基本上是强类型的,但可能需要支持运行时类型。

● 数组应该总是有边界检查。

● 具备垃圾回收的机制。

● 支持接口(interface)。

● 支持嵌套和匿名函数/闭包。

● 一个简单的编译器。

● 各种语言机制应该能产生可预测的代码。

2007年9月25日,Rob Pike在一封回复电邮中把这门新编程语言命名为go

很多Go语言初学者经常称这门语言为golang,其实这是不对的:golang仅应用于命名Go语言官方网站,当时之所以使用golang.org作为Go语言官方域名,是因为go.com已经被迪士尼公司占用了。

Go语言正式发布并开源

2009年10月30日,Rob Pike在Google Techtalk上做了一次有关Go语言的演讲"The GoProgramming Language" 6 ,首次将Go语言公之于众。

Go语言项目在2009年11月10日正式开源,这一天也被Go官方确定为Go语言诞生日。Go语言项目的主代码仓库位于go.googlesource.com/go。最初Go语言项目在code.google.com上建立了镜像仓库,几年后镜像仓库迁移到了GitHub上。

在发布后,Go语言拥有了自己的"吉祥物"(mascot)------一只由Rob Pike的夫人Renee French设计的地鼠

此地鼠成为世界各地Go程序员的象征。Go程序员也被昵称为Gopher(后文会直接使用Gopher指代Go语言开发者),Go语言官方技术大会被称为GopherCon。国内最负盛名的Go技术大会同样以Gopher命名,被称为GopherChina。

相关推荐
泡海椒4 小时前
JQuick-Curl 二次开发:自定义解析器、扩展点开发指南,如何把框架能力真正变成团队资产
java·开发语言·okhttp·maven
WWJA王文举4 小时前
FreeRTOS事件组和任务通知详解:为什么任务通知比队列更轻量?
开发语言·php
IT_陈寒4 小时前
Python的多线程居然是个假把式?搞清GIL让我少熬三天夜
前端·人工智能·后端
明月_清风4 小时前
位图与布隆过滤器:海量数据下的"存在性判断"艺术
前端·后端·算法
明月_清风4 小时前
Hash 表从入门到精通:Go 实战与工程细节
前端·后端·算法
考虑考虑5 小时前
ElasticSearch索引命令
运维·后端·elasticsearch
wuyk5555 小时前
12.归并排序:分治思想的稳定排序算法
开发语言·数据结构·算法·排序算法
吴声子夜歌5 小时前
ApacheCommons——commons-text(模板替换与文本算法)
java·开发语言·算法·apache
玉宇夕落6 小时前
背单词项目一:融会贯通:从零构建"单词大师"后台——Next.js + Supabase + Drizzle 全栈开发实战
后端
quantdash_cc6 小时前
量化数据源怎么选:稳定性、实时性和数据完整性到底该如何权衡?
开发语言·python·数据分析·量化交易·股票数据·quantdash