Google公布全新程序语言计划Go 提升电脑计算力

发布时间:2009-11-24

Google软件名人们,如Unix共同作者Ken Thompson,准备用实验性的程序语言计划Go,提升电脑计算力和程序设计师的能力。

Google终于公开Go,并邀请外界加入这个新的开放源代码软件计划。不愿受到现有硬件设计和程序制作技术的限制,Go团队要另辟全新的途径。

Google软件工程师主任Rob Pike表示:我们发现有些问题只能通过语言的方式去解决。我们本身就是系统软件专家,我们需要一种改善我们工作方式的语言。

目前,Google Go计划包含该程序语言、转换程序为可执行软件的编译器,和一个赋予Go程序若干内建功能的runtime package。它与C和C++相当类似,但Pike表示,Go拥有现代特色和足够的功能,甚至可以在浏览器内使用。

创造一种新程序语言,并获得业界的普遍采用,需要很大的努力。比如Sun的Java语言虽然很成功,但本来想用来接替Fortran语言的Fortress就没那么成功了。

但Go具有一些多数程序语言没有的资产。首先,这是一个Google计划,有数量庞大的服务器和技术高超的程序设计师为后盾。Google的一个实验可能比许多其他公司的实际产品更具商业意义,而Go已从Google员工的20%公余计划,晋升为该公司正式支持的计划。

第二,Go团队成员的背景惊人,其中包括:

Thompson,1983年杜林奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。他与Dennis Ritchie是Unix的原创者。Thompson也发明了后来衍生出C语言的B程序语言。

Pike,曾是贝尔实验室(Bell Labs)的Unix团队,和Plan 9操作系统计划的成员。他与Thompson共事多年,并共创出广泛使用的UTF-8 字元编码。

Robert Griesemer,曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。

此外还有Plan 9开发者Russ Cox,和曾改善目前广泛使用之开原码编译器GCC的Ian Taylor。

Go可以干嘛?

Google对Go寄予厚望。其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决若干物件取向程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助程序设计师处理琐碎但重要的内存管理问题。Go的速度也非常快,几乎和C或C++程序一样快,且能够快速制作程序。

Go的网站就是用Go所建立,但Google有更大的野心。该软件是专为构建服务器软件所设计(如Google的Gmail)。Google认为Go还可应用到其他领域,包括在浏览器内执行软件,取代目前JavaScript的角色。

Pike说:它至少在强度上比JavaScript高一级。Google自建Chrome浏览器,部分原因就是加速JavaScript和网页表现,而Google已经融合了本身的技术,如Native Client和Gears。

Pike表示,Go另一项与网络相关的特色,是服务器和用户端设备,如PC或手机,可以分担工作。因此,使用Go的服务便可轻松适应不同的用户端处理性能。Go也可解决目前的一大挑战:多核心处理器。一般电脑程序通常依序执行,一次进行一项工作,但多核心处理器更适合同步处理许多工作。Pike说:我们自认有足够的支持,可改善这方面的问题。

Go团队正在寻求帮助。其中一个重要领域是改善Go能够使用的runtime library。这类library可提供许多工具和功能,加快程序设计的过程。而Go的library还包括许多重要的设计元素,并供应处理同作、垃圾收集和其他低层杂务的资源。

Go团队也需要编译器方面的协助。Thompson曾为32位元和64位元x86处理器,及ARM处理器写过一些编译器,Taylor也为GCC编译器写过一个Go前端。

尽管Google对Go有很大的野心,该公司也明白,这项计划无法完全取代现有的技术。Pike说:我不认为我们能取代任何东西。我们只是创造出这个领域的另一个角色。