上QQ阅读APP看书,第一时间看更新
1.2 Go语言的早期团队和演进历程
经过早期讨论,Go语言的三位作者在语言设计上达成初步一致,之后便开启了Go语言迭代设计和实现的过程。
2008年年初,Unix之父Ken Thompson实现了第一版Go编译器,用于验证之前的设计。这个编译器先将Go代码转换为C代码,再由C编译器编译成二进制文件。
到2008年年中,Go的第一版设计基本结束了。这时,同样在谷歌工作的Ian Lance Taylor为Go语言实现了一个GCC的前端,这也是Go语言的第二个编译器。
Ian Lance Taylor的这一成果让三位作者十分喜悦,也很震惊。因为这对Go项目来说不仅仅是鼓励,更是一种对语言可行性的证明。Go语言的这第二个实现对确定语言规范和标准库是至关重要的。随后,Ian Lance Taylor以第四位成员的身份正式加入Go语言开发团队,并在后面的Go语言发展进程中成为Go语言及工具设计和实现的核心人物之一。
Russ Cox也是在2008年加入刚成立不久的Go语言开发团队的,他是Go核心开发团队的第五位成员,他的一些天赋随即在Go语言设计和实现中展现出来。Russ Cox利用函数类型也可以拥有自己的方法这个特性巧妙设计出了http包的HandlerFunc类型,这样通过显式转型即可让一个普通函数成为满足http.Handler接口的类型。Russ Cox还在当时设计的基础上提出了一些更通用的想法,比如奠定了Go语言I/O结构模型的io.Reader和io.Writer接口。在Ken Thompson和Rob Pike先后淡出Go语言核心决策层后,Russ Cox正式接过两位大佬的衣钵,成为Go核心技术团队的负责人。