为什么Android应该转为Go语言开发?

我能肯定大家最近都了解到了关于Oracle(甲骨文)正在向Google索要Java的专利费,因为他们认为Google开发的Android移动操作系统使用了他们的专利。这是非常荒谬的,Java的流行就是因为Java的大部分东西都是开源的。(这也不是Oracle第一次向别的公司索要专利费)。

在有很多更好的语言可以选择的情况下,为什么Google仍然还要使用Java来开发Android呢?Google最终选择Java的原因是因为Java非常流行,而且Java可以通过一定程度的定制完成底层的硬件操作(比如C),然而一些更高层的语言(比如JavaScript)并没有这种功能。一旦Google选择了这样一个非常流行的语言,对于开发者来讲,上手Android 开发也变得简单的多。

最近一段时间Android是最流行的移动平台,但是IOS的市场份额也非常接近。你知道IOS选择的编程语言么?对是Objective-C,除了开发苹果的产品之外,几乎没有人使用Objective-C。所以说苹果选择了一种不流行的,但是基本上是自己控制的语言平台。

Google确实需要为Android选择另外的编程语言,一个自己有更多的控制权限的语言,是否流行并不重要(比如IOS)。Google应该选择Go,在golang.org上我们可以看到:

Go is an open source project developed by a team at Google and many contributors from the open source community. Go is distributed under a BSD-style license.

Go是一个新的并没有多少用户的语言,但是Obective-C同样。Google是Go语言的奠基人,可以完全控制Go语言的发展。Go是在BSD协议下发布的开源语言,这意味着所有的开发者可以在任何地方使用它。另外,Go是一个操作系统级的语言。这里有一些关于Go的信息。

Go语言在现有的系统编程语言环境遇到困难时诞生了。程序设计变得如此的困难,而选择语言就是其中很大的一个原因。开发者不得不选择一个高效编译、高效执行且开发简单的语言,而这三种特性在现代的语言中并不会同时存在。程序开发者如果想选择简单胜过安全的语言,可能转向动态类型的语言,例如Python、JavaScript而不是C++、Java。Go语言是一个试图结合动态类型和静态类型,编译效率和安全性以及语言的易用性等众多特性与一体的一种尝试。他的另一个目标是支持现代的基于网络的、基于多核的计算。最后,Go还是非常快的,他可以在单个计算机上仅仅花费几秒时间构建一个庞大的应用程序。为了达到这些目标需要解决这些语言问题:灵活的类型系统、并发的垃圾回收、强制的依赖规范等等。这些东西不是旧的语言一些库或者工具可以处理的,这也就是他被称为新的编程语言的原因。

这里有我提到的三种语言的语法比较:

Go版本的HelloWorld:

package mainimport "fmt"func main() {    fmt.Println("Hello, World!")}

Java版本的HelloWorld:

class ArbitraryClassName {    public static void main(String[] args) {        System.out.println("Hello World!");    }}

Objective-C版本的HelloWorld

#import <stdio.h>int main( int argc, const char *argv[] ) {    printf("Hello World!");    return 0;}

OSCHINA.NET原创翻译/原文链接