• 保存到桌面加入收藏设为首页
服务器技术

Go语言一周年

时间:2016-07-05 10:40:06   作者:老谭   来源:IDCSPED   阅读:5109   评论:0
内容摘要:导读:Google的Go语言诞生一年之际,Google澳洲的Go开发者Andrew Gerrand在官方博客发表文章,回顾了一年来Go语言的成长和最新情况。译文转载自Go语言中文社区GoCoding.org,译者是chingli。下文经过CSDN编辑校对,纠正了一些误译。Go语言吉祥物金花鼠Gordon(由Rob Pi...

导读:Google的Go语言诞生一年之际,Google澳洲的Go开发者Andrew Gerrand在官方博客发表文章,回顾了一年来Go语言的成长和最新情况。译文转载自Go语言中文社区GoCoding.org,译者是chingli。下文经过CSDN编辑校对,纠正了一些误译。

Go语言吉祥i金花鼠Gordon(由Rob Pike的妻子 Renee French绘制)

Go语言吉祥物金花鼠Gordon(由Rob Pike的妻子 Renee French绘制)

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是一个新的包管理工具,可以o单个命令安装和更新外部包。Gofmt,Go的格式化工具,现在可以尽可能地进行语法简化了。Goplay,一个基于Web的“即输入即编译”工具,在无法访问Go Playground时提供了试用Go语言的便利方式。

标准库已经增长了超过42 000行代码,其中包括20个新的包。新增加的包包括jpeg、jsonrpc、mime、netchan和smtp,以及许多新的cryptography包。从更一般的意义上来说,随着我们对Go的惯用法理解的不断深入,标准库也不断地得到改善和修正i

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

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

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

除了Go项目本身,Go也正开始被用于一些实际的软件。在Project dashboard上列出了200多个Go程序和库,在Google Code和Github还有数百个。在我们的邮件列表和IRC频道里可以看到来自全球的许多程序员在用Go开发项目。(我们上个月的特邀博客文章介绍了一个真实的例子。CSDN注:Michael Hoisie用Go开发的Facebook程序Smart Twitter很快就有了9万用户。)在Google内部也有几个团队正选择Go来构建软件产品,我们也收到其他公司正在用Go开发大系统的报道。我们还与几个将Go作为教学语言的教育工作者取得了联系。

Go语言自身也长大并成熟了。在过去的一年里,我们收到了许多的功能要求。但Go是一个小语言,我们努力保持任何的新功能在简单性和可用性之间取得平衡。从发布以来,我们对该语言进行了许多改进,许多都是由社区反馈驱动的:

  • 在几乎所有情况下,分/都变为可选了。[spec]
  • 新的内建函数append使得对切片的管理更高效和直白。[spec]
  • 当生成一个子切片(sub-slice)时,上下界可以省略了。这意味着s[0:len(s)]的简写。[spec]
  • 新的内建函数panic新的复数类型(complex64复合文字语法允许多余的类型信息(如在指定二维数组时)。[release.2010-10-27,spec]
  • 规定了一个通用的可变函数参数(v...)的语法。[spec, spec,release.2010-09-29]

Go已经完o可以用于生产环境了,但仍有提升的空间。我们最近关注的是使Go程序在高性能系统中更快和更高效。这就要改进其垃圾回收器,优化生成的代码,并改进其核心库。我们同时也在探索向类型系统中添加一些东西使泛型编程变得更加容易。在这一年中已经发生进展很大,足以让人激动和满o了。我们期望下一年会更加硕果累累。

如果您有意进入(或返回)Go的世界,现在正是时候!请查看我们的文档入门页面以获得更多信息,或者直接到Go Playground玩一把。

本文采用知识共享 署名-相同方式共享 3.0 许可协议。


IDCsped 提供最新的IT互联网资讯,本着分享传播的宗旨,我们希望能帮助更多人了解需要的信息!

部分文章转载自互联网、部分是IDCsped原创文章,如果转载,请注明出处:www.idcsped.com !
微信号:13430280788  欢迎加微信交流!

标签:Windows  Google  管理工具  编程语言  里程碑  
相关评论

销售电话:13430280788

Copyright © 2012-2017 | www.idcsped.com 版权所有

  粤公网安备 44010502001126号  粤ICP备12006439号-1