技术开发 频道

简单而富有效率 Go语言诞生一周年回顾

  【IT168 评论】本文原文发表于Go语言的官方博客,作者回顾了一年来Go语言在各方面取得的主要进展。

  在2009年11月10日我们启动了Go项目:一个注重简单和效率的开源编程语言。一年来,无论是Go项目自身还是它的社区都有了极大的发展。

  我们构建此语言的本意是进行系统编程——这方面的程序通常用C或C++所写——但当Go被作为一种通用语言使用时,我们也感到意外。我们本指望该语言受到C、C++和Java程序员的关注,结果同时受到一些动态类型语言如Python和JavaScript用户的热情关注则是我们始料未及的。Go所具有的本地编译、静态类型、内存管理和轻量级语法的优点引发了广大编程社区的共鸣。

  这些广大的参与者逐渐汇集到一个由热情的Go程序员组成的专门社区。我们的邮件列表目前有超过3,800位成员,每月大概有1,500个帖子。该项目有130多个贡献者(指那些提交代码或文档的人),在所有的2,800次提交中,大约有三分之一是由项目核心团队之外的程序员提交的。为了完成开发,有将近14,000封邮件通过我们的开发邮件列表被交换。

  这些数据彰显了结晶于项目代码库的劳动成果。编译器持续地得以改进,从而能产生更快的和更高效的代码,有超过100个报告的bug被修正,并支持更多的操作系统和架构。由于一个专门小组(其中的一人成为项目第一个非Google的提交者)的努力,向Windows的移植已接近完成。向ARM的移植也取得了巨大进展,最近达到了一个里程碑——通过了所有的测试。

  Go的工具组件已经被扩展和提高。Go的文档工具godoc现在已经支持其他源码树的文档(您可以浏览并搜索您自己的代码),并且提供了一个“code walk”界面来呈现辅导材料(这只是更多改进中的一项)。Goinstall是一个新的包管理工具,它使得用户可以用单个命令安装和更新外部包。Gofmt,Go的美化印刷工,现在可以进行语法简化了。Goplay,一个基于web的“即输入即编译”工具,当您无法访问Go Playground时,它提供了实验Go的便利方法。

  标准库已经增长了超过42,000行代码,其中包括20个新的包。新增加的包包括jpeg、jsonrpc、mime、netchan和smtp,以及新的许多cryptography包。除此之外,随着我们对Go的理念理解的深入,标准库也持续地得以精炼和修正。

  调试方面的事情同样也变得更好了。最近对gc编译器的DWARF输出的改进使得GUN调试器(GDB)可用于Go的二进制文件了,并且我们正在积极努力来使调试信息更加全面。(请参见最近的博客文章获得详细信息。)

  现在更容易与已有的非Go语言所写的库进行连接了。在最近的SWIG 2.0.1版发布中,已经添加了对Go的支持,这使得Go可以与C或C++代码连接了,并且我们的cgo工具也得到了许多的修正和提升。

  Gccgo,GUN C语言编译器的Go前端,在Go的实现中已经与gc编译器平行前进了。它现在有了一个可用的垃圾回收器,并已经被GCC核心所接受。我们现在正在使gofrontend变成为一个BSD协议授权的Go编译器前端,以彻底地从GCC中解耦出来。

0
相关文章