【外刊IT评论网】Go语言的崛起?

标签: go语言 批评评论 | 发表时间:2012-10-08 00:03 | 作者:Aqee
出处:http://www.aqee.net

Google_Go_language
我们这个世界真的需要另外一种C语言风格的编程语言吗?很显然,谷歌很早就这么认为了,在2009年,它 借用雷蒙斯乐队的歌“Hey!Ho!Let’s Go”,正式推出了Go语言。现在Go语言开发团队已经 开发出了这种语言的第一个稳定版本,他们称之为Go 1,他们将这种语言推向世界,希望人们用这种语言“开发出健壮的软件产品和作品。”那么,现在人们对这种语言的使用情况又是如何呢?

让我们先回顾一下,什么是Go语言,是什么促使谷歌决定推出这样一种语言?按Go语言的“ 常见问题”里的说法,自从那个“重要的系统级编程语言”诞生距今已超过十几年了,这段时间计算机世界已经发生了很大的变化。谷歌的才人们对目前现有的各种语言深感失望,他们必须要在“快速的编译、快速的执行或简单编程”之间做出选择。“没有一种主流的编程语言,例如C,C++,Java,Python等,能提供谷歌人想要的全部特征。

于是,谷歌的工程师从2007年起开始开发Go语言。“常见问题”里这样说:Go语言在基本语法上”基本上属于C语言家族“,但它从Pascal语系吸收了”大量的理念“,还有一些思想是来自其它的语言。但对于程序员来说,应该把它当成一种全新的语言,一种以”让程序员更有效率,让编程更有效率,至少是让我们更有效率并且使编程更有乐趣“的理念为设计目标的编程语言。

Go语言擅长做什么…?

那么,Go语言擅长做什么?根据 谷歌著名的软件工程师—— Go语言的设计人之一—— Rob Pike的说法,它是用来开发”大型软件“的。

Pike说Go语言适合于”很多程序员一起开发的大型软件,并且开发周期较长,支持云计算的网络服务:简言之,就是服务端软件。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。“(作为原贝尔实验室Unix开发小组成员,Pike对系统软件有相当的认识。)

但对于其它类型的软件,Go语言也一样的好用。例如,我在Google+上询问了Go语言的使用者,得到了Douglas Fils的回复,他正在拿各种语言做实验。

Fils说他现在有时会开发一些Web应用程序,大多数都是在Java虚拟机(JVM)平台上。“所以Java自然是最常用的。我最近开始尝试更多的语言,例如Scala和Groovy。我用Groovy语言已经开发了不少的东西,而且刚刚完成了一个Groovy/Grails语言上的大型项目。我还研究了一下Ruby on Rails/Python(Python框架),并用它们做了一些东西。”

他说他用早期版本的Go语言开发了一个Web界面来处理数据资源。但很不幸。“当时的Go的程序库和语法使得开发起来很困难。我还尝试了node.js,而且,到了一月份,我的精力完全转向了node.js.”

Node.js,Fils 说,很流行,“虽然我很喜欢它,但它的单线程事件循环机制和非阻塞的编程模式让我不太满意。还有,所有的东西都要用Javascript的回调函数,我不喜欢这样。”很显然,他不是一个JavaScript的粉丝。Go语言的语法和结构,从另一方面讲,“还是很简洁的。”

当Go语言的语法和结构趋于稳定,并发布了Go 1时,他觉得应该转回来,重写他的Go语言程序。这回,他想起来了当初为什么想用Go来开发。

关于Go语言的争论

Fils说,在Java里,很多东西都需要有一定的模板套路,这是很讨厌。他说Scala和groovy要好一些,但仍然是个问题。

Go语言给人的感觉像一个动态的类型化语言,Fils说,但Go语言里静态类型特征并不像Java里那样明显。

Go语言的 垃圾收集管理,比JVM要好的多。跟Groovy这样的动态语言比起来尤其能看出这点。

Fils在评论中说Go语言的速度比其它语言快很多倍。它运行速度快但不影响负载量。它编译所需的时间很短,他在开发时能边开发边编译,就像动态语言那样迅速。

最后,他说使用Go语言要比使用Node.js,Java或以Java为基础的语言,Ruby on Rails等语言要有趣的多。在开发JVM平台上的应用时,我总感觉自己是一个系统管理员,而不是一个开发者。我要修改堆空间,我要研究负载均衡或内存问题或其它的资源管理问题。而使用Go语言,我不需要考虑这些。我开发,编译,测试,运行,部署,非常的享受。

请注意,并不是所有的人都喜欢Go语言。你可以看一看 Shaneal Manek的关于Go语言的垃圾收集系统以及脚本语言和编译型语言之间比较的评论。

Go语言能走向主流吗?

你的期望是什么?按照RedMonk’s Stephen O’Grady的说法,对于Go语言来说现在还非常年轻。通常,程序员会分成两个阵营:要么欢迎底层语言和脚本型/垃圾收集器型语言的融合,要么是反对这样做。对于后者,毫无意外的,他们是C语言的坚定拥护者。

围绕着Go语言有很多的争论,这不令人吃惊,任何一种语言都是这样。而令人吃惊的是目前Go语言在程序员中获得了相当的吸引力。O’Grady二月份在RedMonk编程语言分级中把Go语言放入了 第二梯队。但是,他说,考虑一下Go语言是如此的年轻,“即使是目前这种成绩也是让人相当的印象深刻了。”

谷歌已经发布了Go语言的稳定版本,并且在 Google App Engine支持部署这种语言的应用,这将给Go语言带来更多的吸引力。

Go语言能否成为一种“主流”语言,这需要由时间来判定。不过,看起来除谷歌之外还有很多公司对这种语言也很感兴趣,比如 Engine Yard等公司。那些对目前的现存的语言不太满意的程序员大概对Go语言都在拭目以待。

如果你在使用Go语言或之前简单涉略过它,你需要注意, Go 1 版引入了不少的变化。然而 从Go 1版开始,Go语言的变化将会遵循它的规格说明书进行。根据Go语言的开发人员的透露,“也许在某个时间,我们会推出Go 2的规范,但在此之前,用Go语言编写的程序在今后的Go 1版本(Go 1.1, Go 1.2等)上都能正确的运行。”

你用Go语言开发过什么项目吗?给我们说说你对Go语言的感觉,它是否是一个有未来的语言?


本文来自 外刊IT评论网( www.aqee.net),原始地址: Go语言的崛起?


相关 [it go 语言] 推荐:

Go 语言初步

- wei - 云风的 BLOG
所谓认真玩,就是拿 Go 写点程序,前后大约两千行吧. 据说 Go 的最佳开发平台是 Mac OS ,我没有. Windows 版还没全部搞定,但是也可以用了. 如果你用 google 搜索,很容易去到一个叫 go-windows 的开源项目上. 如果你用这个,很多库都没有,而且语法也是老的. 我在 Windows 下甚至不能正确链接自己写的多个 package.

采访:关于 Go 语言和《Go Web编程》

- - 开源中国社区最新新闻
最近,在网上出现了一本名为《Go Web编程》的书籍,里面详细地讲述了使用Go语言进行Web编程的各个方面. 很特别的是,这本书是在GitHub上以开源的方式撰写的. 日前,InfoQ采访了这本书的作者谢孟军先生,请他来和大家谈谈Go语言以及他撰写的开源书籍. InfoQ:请您先简单和大家介绍一下自己.

《学习Go语言》0.4 中文版

- way - python.cn(jobs, news)
鱼哥(https://twitter.com/#!/smallfishxy)上个月勒令我要完成 0.4 版的翻译. 之前公司重组的时候,没顾上看英文版本的更新,结果这老外不声不响的做了如此之多的改动……. 于是只好人工 diff,一条一条的对比 commit 内容. 总算是跟进到了 0.4 这个 tag.

文章: Go语言开发工具LiteIDE

- - InfoQ cn
Go语言最初在2009年11月对外公布,在2011年3月16日发布第一个release,第一个正式版本Go1于2012年3月28日推出. 在Go语言的正式版本推出后,Eclipse、IntelliJ IDEA、vim、emacs、gedit、SublimeText2、Textmate、Textpad、SciTE、Notepad++等IDE和编辑器开始纷纷有了各自的Go语言插件.

go语言编写Web程序

- - 博客园_首页
创建一个数据类型,含有load和save函数. 基于http包创建web程序. 基于template包的html模板技术. 使用regexp包验证用户输入. web程序的基础技术(HTTP, HTML). 首先,要有一个Linux, OS X, or FreeBSD系统,可以运行go程序. 如果没有的话,可以安装一个虚拟机(如VirtualBox)或者 Virtual Private Server.

为什么放弃Go语言【转载】

- - 编程语言 - ITeye博客
转载地址: http://blog.csdn.net/liigo/article/details/23699459. 有好几次,当我想起来的时候,总是会问自己:我为什么要放弃Go语言. 开门见山地说,我当初放弃Go语言(golang),就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽.

Dropbox 开源其 Go 语言库 —— godropbox

- - 开源中国社区最新新闻
Dropbox的成功大部分归功于Python,这个语言可以使我们快速迭代开发. 然而,为了支持日益增长的用户量,我们的基础设施日渐成熟,这时 我们开始寻找一种更为高效的方式来改变系统规模. 大约在一年前,我们作出决定,把对于性能要求很苛刻的后台部分从Python迁移到了Go语言,以提供更 好的并发支持和更快的运行速度.

为什么要使用 Go 语言,Go 语言的优势在哪里?

- - 知乎每日精选
可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了. 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高. 语言层面支持并发,这个就是Go最大的特色,天生的支持并发,我曾经说过一句话,天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还是天生基因的美丽呢.

GO 工具包安装方法 - Go语言中文网 - Golang中文社区

- -
go 安装依赖包一般会通过四种路径. 比如我们可以通过go get github.com/xxx来下载安装包. 下载好之后, 通过go install github.com/xxx来安装包. 安装包会下载到$GOPATH/src文件中. 安装后的执行文件在$GOPATH/bin文件. 当我们执行go get golang.org/x/tools/cmd/goimports会报错.