世界上还需要另外一个编程语言吗?

企业动态
Rob Pike讨论为什么Google要开发新的Go语言 Rob Pike总是会在恰当的地方做事。

——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后,方向则变得非常不同。我们完全是一个试图让事情实现的公司。至少在后来,开源变成了公司文化的一个基本部分。因此在这方面他们是非常不同的。

随着一天天的工作进展,我认为他们有许多共通点。他们都是令人向往的工作地点,他们都具有许多聪明的人们。但在文化上,他们是通讯公司和互联网公司的差别。他们从根本上是两回事。

 

【编辑推荐】

  1. 网络已经成为第五战场
  2. 中国CEO存在三大软肋
  3. 微软与富士通将合作开展云计算业务
责任编辑:张攀 来源: oreilly
相关推荐

2010-03-16 16:47:58

Java编程语言

2018-12-04 15:46:53

编程语言Python

2023-06-01 07:50:42

JSDocTypeScriptAPI

2018-07-19 19:07:33

语言编程语言程序

2019-11-18 15:07:54

编程语言C#

2018-09-20 22:04:01

2013-09-12 15:39:30

编程语言BANCStar

2016-01-28 10:04:09

Jenkins运维持续交付

2023-04-07 15:30:24

操作系统ChatGPT

2020-11-16 09:38:08

编程语言EmojiEmojicode

2022-09-19 21:34:04

PHPFacebook语言

2018-01-15 08:38:41

备份服务器企业

2015-06-19 06:41:45

生命科学云计算集群计算

2018-07-11 15:31:24

程序员Java编程

2017-08-17 17:00:59

Androidroot手机

2024-02-19 00:12:00

模型数据

2020-02-05 15:23:00

语言编程文言文

2018-06-13 14:07:04

iOSAndroid苹果

2024-01-09 17:58:47

点赞
收藏

51CTO技术栈公众号