Go 博客

Go at I/O: 常见问题解答

Andrew Gerrand
2010 年 5 月 27 日

在上周的 Google I/O 产品发布会上,我们的小团队在座无虚席的房间里进行了演讲,并遇到了许多 Go 程序员(包括现在和未来的)。特别令人欣慰的是,我们遇到了这么多人在了解了 Go 的一些情况后,对其在使用过程中能够获得的(即时和长期的)潜在好处感到兴奋。

在 I/O 期间,我们收到了很多很好的问题,在这篇博文中,我想对其中一些进行回顾和扩展。

Go 对生产系统的适用性如何?Go 现在已经准备好且稳定。我们很高兴地报告,Google 正在使用 Go 进行一些生产系统,并且运行良好。当然,仍有改进的空间——这就是为什么我们继续致力于语言、库、工具和运行时。

你们有计划实现泛型吗?关于泛型类功能的许多提案已经在公开和内部被提议,但截至目前,我们还没有找到一个与语言其他部分一致的提案。我们认为 Go 的关键优势之一是其简洁性,因此我们对引入可能使语言更难理解的新功能持谨慎态度。此外,我们写的 Go 代码越多(因此我们自己也越了解如何写 Go 代码),就越觉得不需要这样的语言特性。

你们有支持 GPU 编程的计划吗?我们目前没有这方面的计划,但由于 Go 是与架构无关的,所以这很有可能。启动一个在不同处理器架构上运行的 goroutine,并使用 channel 在运行在不同架构上的 goroutines 之间进行通信的能力,似乎是不错的想法。

有计划在 App Engine 下支持 Go 吗?Go 和 App Engine 团队都希望看到这种情况发生。一如既往,这取决于资源和优先级,才能决定何时以及是否会成为现实。

有计划在 Android 下支持 Go 吗?Go 编译器都支持 ARM 代码生成,所以这是可能的。虽然我们认为 Go 将是一种编写移动应用程序的出色语言,但对 Android 的支持并不是我们正在积极研究的内容。

我能用 Go 做些什么?Go 在设计之初就考虑到了系统编程。服务器、客户端、数据库、缓存、负载均衡器、分发器——这些是 Go 显然有用的应用程序,也是我们在 Google 内部开始使用它的方式。然而,自从 Go 开源发布以来,社区已经找到了该语言的各种各样的应用。从 Web 应用到游戏再到图形工具,Go 有望成为一种通用的编程语言。其潜力仅受限于库的支持,而库的支持正在以惊人的速度改进。此外,教育工作者也表示有兴趣使用 Go 来教授编程,认为其简洁的语法和一致性非常适合这项任务。

感谢所有参加我们演讲的人,或在办公时间与我们交谈过的人。我们希望在未来的活动中再次见到大家。

Rob 和 Russ 演讲的视频可以在 YouTube 上观看。

下一篇文章:Google I/O Go 编程会话视频
上一篇文章:即将举行的 Google I/O Go 活动
博客索引