——Rob Pike讨论为什么Google要开发新的Go语言 Rob Pike总是会在恰当的地方做事。在80年代初期,他在贝尔实验室与Brian Kernighan以及Ken Thompson一起工作,与Kernighan合写了“UNIX编程环境”,并与Thompson合作开发了UTF-8 字节编码标准。Pike现在是Google的一个首席工程师,并与人合作开发了Go,一个新的编程语言。Pike将在下月的OSCON大会上讨论Go,他也在下面的采访中谈论了Go的开发以及编程语言的当前状态。
创建Go语言的动机是什么?
Rob Pike:几年以前,我们在Google的几个人开始对软件开发过程感到沮丧,尤其是在使用C++编写大型的服务器软件时更是如此。我们发现二进制文件变得越来越大。他们需要花费太多的时间去编译。此语言几乎是当前世界上主要的系统软件语言,其本身已经是一种非常老旧的语言了。最近二十年来许多在硬件上的思想和变化都未能影响C++。于是我们决定着手从新设计设计一种能解决我们问题的语言:我们需要快速地构建软件,使其能在现代的多核心硬件和网络环境中运行良好,并且做到快乐编程。
尽管我们针对一些特定的问题来设定Go的目标,它已经变成一个比我们最初的设想更加通用和适用的编程语言。因此我们现在正使用它做许多不同的事情。我认为它应该在多个方向上都有美好的未来。
使用Go编程会感觉如何呢?
Rob Pike:Go具有动态语言如Python、Ruby或JavaScript的味儿,但它同时具有像Java、C或C++类语言的性能和安全性。这样你会感觉就像在使用一个轻量级的现代的脚本动态语言,但同时获得了传统语言的健壮性和性能。
Go是否具有一个强大的开发环境?
Rob Pike:我们有一套与此语言配合使用的有趣的工具。其中发布版本的标准库就有完整性分析器。因此依据问题的复杂程度,你可以编写你自己的工具,也许在使用已有库时只需要一页代码。
有一些工具可以使你与已有的库连接。对于大型的如OpenGL一类的包,你最好是仅仅连接使用已有的东西。我们可以使用我们的封装工具来做这些事,另外SWIG支持使得我们能与C++连接。但所有的基类库都是由Go编写的。
已经有了针对Eclipse以及其他环境的插件。但还需要更多的工作,我们尚没有一个IDE,我们已经有了做这些事情的一些想法。
世界上还需要另外一个编程语言吗?
Rob Pike:这是一个关于语言的愉快时光,因为已经产生了如此众多的语言。60年代末到70年代初是语言开发的爆发期,接下来则一切归于平静。这并不是说没有出现新的语言,而是语言的设计似乎都无功而返。然而在最近的5到10年,又一次出现了复兴。我将在OSCON上谈论这种现象的原因之一,便是当前常用的语言并不能满足人们的需求。这里有新语言的生存之所,在这些方面Java、C、C++、JavaScript甚至Python都不能很好的满足需求。
Google与贝尔实验室比起来怎么样呢?
Rob Pike:这两方面都已经发生了很多改变。当我在贝尔实验室工作时,我们做了许多研究驱动的、出版导向的事情。在很大程度上,此公司不理解开源。当我到Google后,方向则变得非常不同。我们完全是一个试图让事情实现的公司。至少在后来,开源变成了公司文化的一个基本部分。因此在这方面他们是非常不同的。
随着一天天的工作进展,我认为他们有许多共通点。他们都是令人向往的工作地点,他们都具有许多聪明的人们。但在文化上,他们是通讯公司和互联网公司的差别。他们从根本上是两回事。
【编辑推荐】