三句半系列:Go语言的诞生

4142 Views

时间回到2007年的9月,Rob Pike那时还是个C++程序员,和我们一样,以码为生。Rob曾经是UNIX小组的成员,年轻时参与过编程语言 Limbo以及UTF-8的开发。那年他51岁,喝着咖啡,撸着码,突然来了一句:Shit,C++。Rob也是个喷子,但他是个理性的喷子。他认为C++语法繁琐,在并发操作方面有其天生的复杂性,很多设计都违背了基本的哲学理论。看来他对C++早有成见了。

没过多长时间,Rob就被邀请参加一个关于C++的报告会议,会议上,C++委员会公布了他们已经计划在内的关于C++的一些新特性,比如左右值引用、可变参数模板、用户定义数据标识,Rob当时就觉得委员会真逗逼,难道C++的问题在于没有足够多的特性?他认为简化语言的成就远远大于添加功能。不过这没啥,Rob也就是喷喷,但是当他听说新的 C++ 内存模型有原子类型时,他受不了了。在Rob看来,将语言和硬件结合的过于紧密是一件愚蠢的事情。

回到办公室,抽了根烟,Rob很深沉的对Robert和Ken说,他希望在写 Google 代码的时候能够轻松的实现并发,而不是像Fuck的C++一样。当一个喷子一个人喷的时候,他也就只能喷喷;但是当三个伟大的喷子一起喷的时候,他们就可以喷出一门新的语言。这仨人一喷即合,晚上就邮件沟通了新语言的事情。Rob把名字都想好了,取名Go,名字简单好记。

当然我觉得三个喷子在一起的时候,也经常会互喷。不过幸运的是,在语言设计上,他们信奉着一个共同理念:Less is more,Less can be more。Go是一门为解决开发过程中遇到的问题而诞生的语言,一开始就被定义的高大上——简洁、高效、支持并发的可用于大型软件的编程语言。

接下来,在每天享有的20%的自由支配时间里,他们开始了Go语言的开发。一开始,Robert说要以C语言为原型来设计Go语言。但在互喷的过程中,他们改变了想法,Go只借用了C语言的部分内容,比如运算符、括号和几个相同的关键字。

2009年,借用雷蒙斯乐队的歌“Hey!Ho!Let’s Go”,Google正式推出了Go语言。Go语言尝试把Python等动态语言的运行速度和C或C++语言的性能、安全结合起来。Go语言有极简的语法和极快的编译速度,就算大的二进制编译也能在几秒内完成的。

未完待续。

如未说明则本站原创,转载请注明出处:NULL » 三句半系列:Go语言的诞生

相关文章