为什么开发人员从Java转Go
英文原文:Why one developer switched from Java to Google Go
使用 Java 来开发企业级的应用可能是一个不错的选择,但是使用 Google 的 Go 语言来开发系统软件会更有优势,一名来自 PivotalJava 开发者如是说,目前他已经成为 Go 语言的支持者。
Pivotal 的一个使用 Go 语言开发其 Cloud Foundry 云平台的工程师 Matt Stine 说:Go 语言在包、模块化和并发方面有很大优势,如果你尝试解决的问题是 Go 语言所擅长的领域,如大型、高性能服务器端程序,我可以说 Go 非常适合这样的场景。”
Stine 认为 Go 是一个“相当无聊”的语言,而不是一个神奇的、现代的、功能丰富的语言,但是尽管如此,“你仍然可以使用它开发出一些令人兴奋的东西”。他认为 Go 是一个构建系统级软件的工具。开发者可以使用 Go 语言标准库来构建系统级软件,而不像其他语言一样需要第三方框架。
Stine 提到,在处理并发时,Golang 有内建的功能,这与 Java 不同,Java 的并发的工具类是通过类库支持的。Stine 说:“我认为 Go 语言本身的语法结构就非常适合处理并发。”另外,Go 支持多返回值。
Go 也提供了闭包和 Map,Map 可以将一种类型的值(Key)与其他类型的值关联起来,他们都是 Go 的内建数据结构。Stine 还称赞了 Go 的 slice。通过 slice,被包装后的数组可以方便地为序列的数据提供接口。在 Go 中,很多与数组相关的编程都通过 slice 来实现。
在 Go 语言中,半自动资源管理是通过 defer 关键字来提供的。“取代创建资源、使用资源、然后在下面关闭资源的是,我可以马上告诉它,‘在该函数其余功能执行完后再执行这个函数’”,stine 说。
Stine 强调,Go 语言在面对包和模块化的时候比 Java 更有优势,原因是在 Go 语言中它们比 Java 简单得多。“在 Go 里面,所有类型和函数必须属于一个包,但是每一个源文件必须申明它所属的包。”
Java,由 Sun Microsystems 公司在 1995 年推出,在语言流行排行榜(包括 Tiobe,PyPL 和 RedMonk 编程语言排行榜)中得分最高或者接近最高。Go 语言,在 RedMonk 排行中正在上升,在 6 月的排行中来到第 21 位。在 7 月的 Tiobe 排行中,Go 被排在 30 位。